From ccfe0b1d7dd07c867a520c42a7b3397b6b940932 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 29 Nov 2011 13:10:25 -0500 Subject: [PATCH] python 3 works ! near zero changes needed --- CHANGES | 6 +----- setup.py | 2 +- tests/__init__.py | 2 +- tests/test_autogenerate.py | 25 ++++++++++++++++--------- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/CHANGES b/CHANGES index 490859a6..38b20499 100644 --- a/CHANGES +++ b/CHANGES @@ -15,11 +15,7 @@ to the bugtracker, at https://bitbucket.org/zzzeek/alembic/issues/new . -- Python 3 is supported but has not yet - been tested. The installer will run the 2to3 - tool as needed, but there are probably some - workarounds that will be needed to get Py3K - fully running. +- Python 3 is supported and has been tested. - The "Pylons" and "MultiDB" environment templates have not been directly tested - these should be diff --git a/setup.py b/setup.py index 7ed20d17..571e7e9e 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ readme = os.path.join(os.path.dirname(__file__), 'README.rst') setup(name='alembic', version=VERSION, description="A database migration tool for SQLAlchemy.", - long_description=file(readme).read(), + long_description=open(readme).read(), classifiers=[ 'Development Status :: 3 - Alpha', 'Environment :: Console', diff --git a/tests/__init__.py b/tests/__init__.py index 4f81b580..e44e23b4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -175,7 +175,7 @@ config = context.config if os.access(pyc_path, os.F_OK): os.unlink(pyc_path) - file(path, 'w').write(txt) + open(path, 'w').write(txt) def _sqlite_testing_config(): dir_ = os.path.join(staging_directory, 'scripts') diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 0915fb51..1f64db83 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -6,6 +6,9 @@ from unittest import TestCase from tests import staging_env, sqlite_db, clear_staging_env, eq_, \ eq_ignore_whitespace, requires_07 +import sys +py3k = sys.version_info >= (3, ) + def _model_one(): m = MetaData() @@ -155,8 +158,8 @@ class AutogenerateDiffTest(TestCase): sa.ForeignKeyConstraint([order_id], ['order.order_id'], ), sa.PrimaryKeyConstraint('id') ) - drop_table(u'extra') - drop_column('user', u'pw') + drop_table(%(u)s'extra') + drop_column('user', %(u)s'pw') alter_column('user', 'a1', existing_type=sa.TEXT(), server_default='x', @@ -165,22 +168,24 @@ class AutogenerateDiffTest(TestCase): existing_type=sa.VARCHAR(length=50), nullable=False) add_column('order', sa.Column('user_id', sa.Integer(), nullable=True)) - alter_column('order', u'amount', + alter_column('order', %(u)s'amount', existing_type=sa.NUMERIC(precision=8, scale=2), type_=sa.Numeric(precision=10, scale=2), nullable=True, existing_server_default='0') add_column('address', sa.Column('street', sa.String(length=50), nullable=True)) - ### end Alembic commands ###""") + ### end Alembic commands ###""" % { + 'u':"" if py3k else 'u' + }) eq_(template_args['downgrades'], """### commands auto generated by Alembic - please adjust! ### drop_table('item') - create_table(u'extra', - sa.Column(u'x', sa.CHAR(), nullable=True), + create_table(%(u)s'extra', + sa.Column(%(u)s'x', sa.CHAR(), nullable=True), sa.PrimaryKeyConstraint() ) - add_column('user', sa.Column(u'pw', sa.VARCHAR(length=50), nullable=True)) + add_column('user', sa.Column(%(u)s'pw', sa.VARCHAR(length=50), nullable=True)) alter_column('user', 'a1', existing_type=sa.TEXT(), server_default=None, @@ -189,13 +194,15 @@ class AutogenerateDiffTest(TestCase): existing_type=sa.VARCHAR(length=50), nullable=True) drop_column('order', 'user_id') - alter_column('order', u'amount', + alter_column('order', %(u)s'amount', existing_type=sa.Numeric(precision=10, scale=2), type_=sa.NUMERIC(precision=8, scale=2), nullable=False, existing_server_default='0') drop_column('address', 'street') - ### end Alembic commands ###""") + ### end Alembic commands ###""" % { + 'u':"" if py3k else 'u' + }) def test_skip_null_type_comparison_reflected(self): diff = [] -- 2.47.2