]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
test revision environment setup
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 28 Apr 2010 01:15:02 +0000 (21:15 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 28 Apr 2010 01:15:02 +0000 (21:15 -0400)
tests/__init__.py
tests/test_revisions.py [new file with mode: 0644]

index 235a34951d4c7adb5ad6e101e0fd00362bec1aad..c889154d6677f64d83f25399e93df848e15385f8 100644 (file)
@@ -1,6 +1,11 @@
 from sqlalchemy.test.testing import eq_
 from sqlalchemy.util import defaultdict
 from sqlalchemy.engine import url, default
+import shutil
+import os
+import itertools
+
+testing_directory = os.path.join(os.path.dirname(__file__), 'scratch')
 
 _dialects = defaultdict(lambda name:url.URL(drivername).get_dialect()())
 def _get_dialect(name):
@@ -12,4 +17,28 @@ def _get_dialect(name):
     
 def assert_compiled(element, assert_string, dialect=None):
     dialect = _get_dialect(dialect)
-    eq_(unicode(element.compile(dialect=dialect)), assert_string)
\ No newline at end of file
+    eq_(unicode(element.compile(dialect=dialect)), assert_string)
+
+
+def _testing_options(**kw):
+    from alembic.options import Options, get_option_parser
+    os.mkdir(testing_directory)
+    kw.setdefault(
+            'config', 
+            os.path.join(testing_directory, 'test_alembic.ini')
+        )
+    return Options(
+                get_option_parser(), 
+                list(itertools.chain(*[["--%s" % k, "%r" % v] for k, v in kw.items()]) )
+                + [os.path.join(testing_directory, 'scripts')]
+            )
+    
+def _testing_env():
+    from alembic import command, script
+    opt = _testing_options()
+    command.init(opt)
+    return script.ScriptDirectory.from_options(opt)
+    
+def _clear_testing_directory():
+    shutil.rmtree(testing_directory, True)
+    
\ No newline at end of file
diff --git a/tests/test_revisions.py b/tests/test_revisions.py
new file mode 100644 (file)
index 0000000..2a40f27
--- /dev/null
@@ -0,0 +1,15 @@
+from tests import _clear_testing_directory, _testing_env, eq_
+import os
+
+def test_environment():
+    env = _testing_env()
+    assert_set = set(['env.py', 'script.py.mako', 'README'])
+    eq_(
+        assert_set.intersection(
+                os.listdir(env.dir)
+            ),
+        assert_set
+    )
+    
+def teardown():
+    _clear_testing_directory()
\ No newline at end of file