From: Mike Bayer Date: Wed, 28 Apr 2010 01:15:02 +0000 (-0400) Subject: test revision environment setup X-Git-Tag: rel_0_1_0~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46695c8111e8a1f4f4c1aa4abdb14ed29ae7829b;p=thirdparty%2Fsqlalchemy%2Falembic.git test revision environment setup --- diff --git a/tests/__init__.py b/tests/__init__.py index 235a3495..c889154d 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -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 index 00000000..2a40f272 --- /dev/null +++ b/tests/test_revisions.py @@ -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