Hello community, here is the log from the commit of package python-sqlalchemy-migrate for openSUSE:Factory checked in at 2015-09-30 05:50:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-sqlalchemy-migrate (Old) and /work/SRC/openSUSE:Factory/.python-sqlalchemy-migrate.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-sqlalchemy-migrate" Changes: -------- --- /work/SRC/openSUSE:Factory/python-sqlalchemy-migrate/python-sqlalchemy-migrate.changes 2015-04-23 08:04:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-sqlalchemy-migrate.new/python-sqlalchemy-migrate.changes 2015-09-30 05:50:29.000000000 +0200 @@ -1,0 +2,17 @@ +Tue Sep 1 08:05:02 UTC 2015 - tbechtold@suse.com + +- update to 0.10.0: + * Update URLs in documentation + * Add VerNum.__index__() for Python 3 support + * Fixes usage function for Py3 + * Unblock migrate (py26 and py3* testing issues) + * Revert "Revert "uncap pbr and sqla requirements"" + * Update flake8 related dependencies + * Revert "uncap pbr and sqla requirements" + * uncap pbr and sqla requirements + * Update tests and reqs for SQLA 1.0 + * Ignore stderr output when invoking migrate script in tests + * Add Python 3 classifiers +- Adjust Requires according to requirements.txt + +------------------------------------------------------------------- Old: ---- sqlalchemy-migrate-0.9.6.tar.gz New: ---- sqlalchemy-migrate-0.10.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-sqlalchemy-migrate.spec ++++++ --- /var/tmp/diff_new_pack.OWD88R/_old 2015-09-30 05:50:29.000000000 +0200 +++ /var/tmp/diff_new_pack.OWD88R/_new 2015-09-30 05:50:29.000000000 +0200 @@ -18,7 +18,7 @@ Name: python-sqlalchemy-migrate -Version: 0.9.6 +Version: 0.10.0 Release: 0 Summary: Database schema migration for SQLAlchemy License: MIT @@ -28,8 +28,8 @@ BuildRequires: fdupes BuildRequires: python-pbr # Documentation requirements: -BuildRequires: python-SQLAlchemy >= 0.6 -BuildRequires: python-Sphinx >= 0.5 +BuildRequires: python-SQLAlchemy >= 0.7.8 +BuildRequires: python-Sphinx >= 1.1.2 # Test requirements: #BuildRequires: python-ScriptTest >= 1.0 BuildRequires: python-Tempita >= 0.4 @@ -38,9 +38,8 @@ #BuildRequires: python-pytz Requires: python-SQLAlchemy >= 0.7.8 Requires: python-Tempita >= 0.4 -Requires: python-Tempita >= 0.4 Requires: python-decorator -Requires: python-six >= 1.4.1 +Requires: python-six >= 1.7.0 Requires: python-sqlparse BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 ++++++ sqlalchemy-migrate-0.9.6.tar.gz -> sqlalchemy-migrate-0.10.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/AUTHORS new/sqlalchemy-migrate-0.10.0/AUTHORS --- old/sqlalchemy-migrate-0.9.6/AUTHORS 2015-03-31 22:08:30.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/AUTHORS 2015-08-31 23:05:45.000000000 +0200 @@ -32,9 +32,12 @@ Sascha Peilicke <saschpe@gmx.de> Sascha Peilicke <speilicke@suse.com> Sean Dague <sean.dague@samsung.com> +Sean Dague <sean@dague.net> Sheng Bo Hou <sbhou@cn.ibm.com> Thomas Goirand <thomas@goirand.fr> +Thomas Goirand <zigo@debian.org> Thuy Christenson <thuy@us.ibm.com> +Victor Stinner <vstinner@redhat.com> Yuval Langer <yuval.langer@gmail.com> al.yazdi@gmail.com <unknown> asuffield@gmail.com <unknown> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/ChangeLog new/sqlalchemy-migrate-0.10.0/ChangeLog --- old/sqlalchemy-migrate-0.9.6/ChangeLog 2015-03-31 22:08:30.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/ChangeLog 2015-08-31 23:05:45.000000000 +0200 @@ -1,6 +1,25 @@ CHANGES ======= +0.10.0 +------ + +* Update URLs in documentation +* Add VerNum.__index__() for Python 3 support +* Fixes usage function for Py3 +* Unblock migrate (py26 and py3* testing issues) + +0.9.7 +----- + +* Revert "Revert "uncap pbr and sqla requirements"" +* Update flake8 related dependencies +* Revert "uncap pbr and sqla requirements" +* uncap pbr and sqla requirements +* Update tests and reqs for SQLA 1.0 +* Ignore stderr output when invoking migrate script in tests +* Add Python 3 classifiers + 0.9.6 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/PKG-INFO new/sqlalchemy-migrate-0.10.0/PKG-INFO --- old/sqlalchemy-migrate-0.9.6/PKG-INFO 2015-03-31 22:08:31.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/PKG-INFO 2015-08-31 23:05:45.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: sqlalchemy-migrate -Version: 0.9.6 +Version: 0.10.0 Summary: Database schema migration for SQLAlchemy Home-page: http://www.openstack.org/ Author: OpenStack @@ -22,15 +22,16 @@ Help ---- - Sphinx documentation is available at the project page `packages.python.org - <http://packages.python.org/sqlalchemy-migrate/>`_. + Sphinx documentation is available at the project page `readthedocs.org + <https://sqlalchemy-migrate.readthedocs.org/>`_. - Users and developers can be found at #sqlalchemy-migrate on Freenode IRC + Users and developers can be found at #openstack-dev on Freenode IRC network and at the public users mailing list `migrate-users <http://groups.google.com/group/migrate-users>`_. New releases and major changes are announced at the public announce mailing - list `migrate-announce <http://groups.google.com/group/migrate-announce>`_ + list `openstack-dev + <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_ and at the Python package index `sqlalchemy-migrate <http://pypi.python.org/pypi/sqlalchemy-migrate>`_. @@ -45,16 +46,13 @@ To run automated tests: - * Copy test_db.cfg.tmpl to test_db.cfg - * Edit test_db.cfg with database connection strings suitable for running tests. - (Use empty databases.) - * $ pip install -r requirements.txt -r test-requirements.txt - * $ python setup.py develop - * $ testr run --parallel + * install tox: ``pip install -U tox`` + * run tox: ``tox`` + * to test only a specific Python version: ``tox -e py27`` (Python 2.7) Please report any issues with sqlalchemy-migrate to the issue tracker at - `code.google.com issues - <http://code.google.com/p/sqlalchemy-migrate/issues/list>`_ + `Launchpad issues + <https://bugs.launchpad.net/sqlalchemy-migrate>`_ Platform: UNKNOWN @@ -67,3 +65,6 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/README.rst new/sqlalchemy-migrate-0.10.0/README.rst --- old/sqlalchemy-migrate-0.9.6/README.rst 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/README.rst 2015-08-31 23:04:29.000000000 +0200 @@ -14,15 +14,16 @@ Help ---- -Sphinx documentation is available at the project page `packages.python.org -<http://packages.python.org/sqlalchemy-migrate/>`_. +Sphinx documentation is available at the project page `readthedocs.org +<https://sqlalchemy-migrate.readthedocs.org/>`_. -Users and developers can be found at #sqlalchemy-migrate on Freenode IRC +Users and developers can be found at #openstack-dev on Freenode IRC network and at the public users mailing list `migrate-users <http://groups.google.com/group/migrate-users>`_. New releases and major changes are announced at the public announce mailing -list `migrate-announce <http://groups.google.com/group/migrate-announce>`_ +list `openstack-dev +<http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_ and at the Python package index `sqlalchemy-migrate <http://pypi.python.org/pypi/sqlalchemy-migrate>`_. @@ -37,13 +38,10 @@ To run automated tests: -* Copy test_db.cfg.tmpl to test_db.cfg -* Edit test_db.cfg with database connection strings suitable for running tests. - (Use empty databases.) -* $ pip install -r requirements.txt -r test-requirements.txt -* $ python setup.py develop -* $ testr run --parallel +* install tox: ``pip install -U tox`` +* run tox: ``tox`` +* to test only a specific Python version: ``tox -e py27`` (Python 2.7) Please report any issues with sqlalchemy-migrate to the issue tracker at -`code.google.com issues -<http://code.google.com/p/sqlalchemy-migrate/issues/list>`_ +`Launchpad issues +<https://bugs.launchpad.net/sqlalchemy-migrate>`_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/doc/source/download.rst new/sqlalchemy-migrate-0.10.0/doc/source/download.rst --- old/sqlalchemy-migrate-0.9.6/doc/source/download.rst 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/doc/source/download.rst 2015-08-31 23:04:29.000000000 +0200 @@ -21,51 +21,32 @@ $ migrate help COMMAND If you'd like to be notified when new versions of SQLAlchemy Migrate -are released, subscribe to `migrate-announce`_. +are released, subscribe to `openstack-dev`_. .. _pip: http://pip.openplans.org/ .. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install .. _sqlalchemy: http://www.sqlalchemy.org/download.html -.. _`project's download page`: http://code.google.com/p/sqlalchemy-migrate/downloads/list .. _`cheese shop`: http://pypi.python.org/pypi/sqlalchemy-migrate -.. _`migrate-announce`: http://groups.google.com/group/migrate-announce +.. _`openstack-dev`: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev .. _development: Development ----------- -Migrate's Mercurial_ repository is located at `Google Code`_. +If you would like to contribute to the development of OpenStack, +you must follow the steps in this page: -To get the latest trunk:: + http://docs.openstack.org/infra/manual/developers.html - $ hg clone http://sqlalchemy-migrate.googlecode.com/hg/ +Once those steps have been completed, changes to OpenStack +should be submitted for review via the Gerrit tool, following +the workflow documented at: -Patches should be submitted to the `issue tracker`_. You are free to create -your own clone to provide your patches. We are open to pull requests in our -`issue tracker`_. + http://docs.openstack.org/infra/manual/developers.html#development-workflow -If you want to work on sqlalchemy-migrate you might want to use a `virtualenv`. +Pull requests submitted through GitHub will be ignored. -To run the included test suite you have to copy :file:`test_db.cfg.tmpl` to -:file:`test_db.cfg` and put SQLAlchemy database URLs valid for your environment -into that file. We use `nose`_ for our tests and include a test requirements -file for pip. You might use the following commands to install the test -requirements and run the tests:: +Bugs should be filed on Launchpad, not GitHub: - $ pip install -r test-req.pip - $ python setup.py develop - $ python setup.py nosetests - -If you are curious about status changes of sqlalchemy-migrate's issues you -might want to subscribe to `sqlalchemy-migrate-issues`_. - -We use a `Jenkins CI`_ continuous integration tool installation to -help us run tests on most of the databases that migrate supports. - -.. _Mercurial: http://www.mercurial-scm.org/ -.. _Google Code: http://sqlalchemy-migrate.googlecode.com/hg/ -.. _issue tracker: http://code.google.com/p/sqlalchemy-migrate/issues/list -.. _sqlalchemy-migrate-issues: http://groups.google.com/group/sqlalchemy-migrate-issues -.. _Jenkins CI: http://jenkins.gnuviech-server.de/job/sqlalchemy-migrate-all/ -.. _nose: http://readthedocs.org/docs/nose/ + https://bugs.launchpad.net/sqlalchemy-migrate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/doc/source/index.rst new/sqlalchemy-migrate-0.10.0/doc/source/index.rst --- old/sqlalchemy-migrate-0.9.6/doc/source/index.rst 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/doc/source/index.rst 2015-08-31 23:04:29.000000000 +0200 @@ -7,9 +7,9 @@ :Author: Evan Rosson :Maintainer: Domen Kožar <domenNO@SPAMdev.si> :Maintainer: Jan Dittberner <jan.dittbernerNO@SPAMgooglemail.com> -:Issues: http://code.google.com/p/sqlalchemy-migrate/issues/list -:Source Code: http://code.google.com/p/sqlalchemy-migrate/ -:CI Tool: http://jenkins.gnuviech-server.de/job/sqlalchemy-migrate-all/ +:Source Code: https://github.com/stackforge/sqlalchemy-migrate +:Documentation: https://sqlalchemy-migrate.readthedocs.org/ +:Issues: https://bugs.launchpad.net/sqlalchemy-migrate :Generated: |today| :License: MIT :Version: |release| @@ -24,7 +24,7 @@ mentored by Jonathan LaCour. The project was taken over by a small group of volunteers when Evan had no - free time for the project. It is now hosted as a `Google Code project`_. + free time for the project. It is now hosted as a `Github project`_. During the hosting change the project was renamed to SQLAlchemy Migrate. Currently, sqlalchemy-migrate supports Python versions from 2.6 to 2.7. @@ -64,6 +64,7 @@ - :ref:`oracle <oracle-d>` - :ref:`firebird <firebird-d>` - mssql + - DB2 * - :ref:`ALTER TABLE RENAME TABLE <table-rename>` - yes - yes @@ -160,7 +161,7 @@ glossary .. _`google's summer of code`: http://code.google.com/soc -.. _`Google Code project`: http://code.google.com/p/sqlalchemy-migrate +.. _`Github project`: https://github.com/stackforge/sqlalchemy-migrate .. _sqlalchemy: http://www.sqlalchemy.org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/changeset/__init__.py new/sqlalchemy-migrate-0.10.0/migrate/changeset/__init__.py --- old/sqlalchemy-migrate-0.9.6/migrate/changeset/__init__.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/changeset/__init__.py 2015-08-31 23:04:29.000000000 +0200 @@ -12,6 +12,8 @@ _sa_version = tuple(int(re.match("\d+", x).group(0)) for x in _sa_version.split(".")) SQLA_07 = _sa_version >= (0, 7) SQLA_08 = _sa_version >= (0, 8) +SQLA_09 = _sa_version >= (0, 9) +SQLA_10 = _sa_version >= (1, 0) del re del _sa_version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/changeset/util.py new/sqlalchemy-migrate-0.10.0/migrate/changeset/util.py --- old/sqlalchemy-migrate-0.9.6/migrate/changeset/util.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/changeset/util.py 2015-08-31 23:04:29.000000000 +0200 @@ -1,3 +1,5 @@ +from migrate.changeset import SQLA_10 + """ Safe quoting method """ @@ -8,3 +10,12 @@ return obj.name.quote else: return obj.quote + + +def fk_column_names(constraint): + if SQLA_10: + return [ + constraint.columns[key].name for key in constraint.column_keys] + else: + return [ + element.parent.name for element in constraint.elements] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/changeset/test_constraint.py new/sqlalchemy-migrate-0.10.0/migrate/tests/changeset/test_constraint.py --- old/sqlalchemy-migrate-0.9.6/migrate/tests/changeset/test_constraint.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/tests/changeset/test_constraint.py 2015-08-31 23:04:29.000000000 +0200 @@ -5,6 +5,7 @@ from sqlalchemy.util import * from sqlalchemy.exc import * +from migrate.changeset.util import fk_column_names from migrate.exceptions import * from migrate.changeset import * @@ -91,7 +92,7 @@ self.assertTrue(list(self.table.c.fkey.foreign_keys) is not []) else: self.assertTrue(self.table.c.fkey.foreign_keys._list is not []) - for key in fk.columns: + for key in fk_column_names(fk): self.assertEqual(key, self.table.c.fkey.name) self.assertEqual([e.column for e in fk.elements], [self.table.c.id]) self.assertEqual(list(fk.referenced), [self.table.c.id]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_database.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_database.py --- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_database.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_database.py 2015-08-31 23:04:29.000000000 +0200 @@ -1,4 +1,4 @@ -from sqlalchemy import select +from sqlalchemy import select, text from migrate.tests import fixture class TestConnect(fixture.DB): @@ -8,4 +8,6 @@ def test_connect(self): """Connect to the database successfully""" # Connection is done in fixture.DB setup; make sure we can do stuff - select(['42'],bind=self.engine).execute() + self.engine.execute( + select([text('42')]) + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_shell.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_shell.py --- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_shell.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_shell.py 2015-08-31 23:04:29.000000000 +0200 @@ -465,42 +465,61 @@ self.meta.reflect() self.meta.drop_all() # in case junk tables are lying around in the test database - result = self.env.run('migrate create %s %s' % (repos_path, repos_name)) - result = self.env.run('migrate drop_version_control %s %s' % (self.url, repos_path), expect_error=True) - result = self.env.run('migrate version_control %s %s' % (self.url, repos_path)) + result = self.env.run( + 'migrate create %s %s' % (repos_path, repos_name), + expect_stderr=True) + result = self.env.run( + 'migrate drop_version_control %s %s' % (self.url, repos_path), + expect_stderr=True, expect_error=True) + result = self.env.run( + 'migrate version_control %s %s' % (self.url, repos_path), + expect_stderr=True) self.assertEqual(self.run_version(repos_path), 0) self.assertEqual(self.run_db_version(self.url, repos_path), 0) # Setup helper script. - result = self.env.run('migrate manage %s --repository=%s --url=%s --model=%s'\ - % (script_path, repos_path, self.url, model_module)) + result = self.env.run( + 'migrate manage %s --repository=%s --url=%s --model=%s'\ + % (script_path, repos_path, self.url, model_module), + expect_stderr=True) self.assertTrue(os.path.exists(script_path)) # Model is defined but database is empty. result = self.env.run('migrate compare_model_to_db %s %s --model=%s' \ - % (self.url, repos_path, model_module)) - self.assertTrue("tables missing from database: tmp_account_rundiffs" in result.stdout) + % (self.url, repos_path, model_module), expect_stderr=True) + self.assertTrue( + "tables missing from database: tmp_account_rundiffs" + in result.stdout) # Test Deprecation result = self.env.run('migrate compare_model_to_db %s %s --model=%s' \ - % (self.url, repos_path, model_module.replace(":", ".")), expect_error=True) + % (self.url, repos_path, model_module.replace(":", ".")), + expect_stderr=True, expect_error=True) self.assertEqual(result.returncode, 0) - self.assertTrue("tables missing from database: tmp_account_rundiffs" in result.stdout) + self.assertTrue( + "tables missing from database: tmp_account_rundiffs" + in result.stdout) # Update db to latest model. result = self.env.run('migrate update_db_from_model %s %s %s'\ - % (self.url, repos_path, model_module)) + % (self.url, repos_path, model_module), expect_stderr=True) self.assertEqual(self.run_version(repos_path), 0) self.assertEqual(self.run_db_version(self.url, repos_path), 0) # version did not get bumped yet because new version not yet created result = self.env.run('migrate compare_model_to_db %s %s %s'\ - % (self.url, repos_path, model_module)) + % (self.url, repos_path, model_module), expect_stderr=True) self.assertTrue("No schema diffs" in result.stdout) - result = self.env.run('migrate drop_version_control %s %s' % (self.url, repos_path), expect_error=True) - result = self.env.run('migrate version_control %s %s' % (self.url, repos_path)) - - result = self.env.run('migrate create_model %s %s' % (self.url, repos_path)) + result = self.env.run( + 'migrate drop_version_control %s %s' % (self.url, repos_path), + expect_stderr=True, expect_error=True) + result = self.env.run( + 'migrate version_control %s %s' % (self.url, repos_path), + expect_stderr=True) + + result = self.env.run( + 'migrate create_model %s %s' % (self.url, repos_path), + expect_stderr=True) temp_dict = dict() six.exec_(result.stdout, temp_dict) @@ -514,7 +533,7 @@ ##Column('passwd', String(length=None, convert_unicode=False, assert_unicode=None))""" in result.stdout) ## We're happy with db changes, make first db upgrade script to go from version 0 -> 1. - #result = self.env.run('migrate make_update_script_for_model', expect_error=True) + #result = self.env.run('migrate make_update_script_for_model', expect_error=True, expect_stderr=True) #self.assertTrue('Not enough arguments' in result.stderr) #result_script = self.env.run('migrate make_update_script_for_model %s %s %s %s'\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_version.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_version.py --- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_version.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_version.py 2015-08-31 23:04:29.000000000 +0200 @@ -69,6 +69,13 @@ self.assertTrue(VerNum(2) >= 1) self.assertFalse(VerNum(1) >= 2) + def test_int_cast(self): + ver = VerNum(3) + # test __int__ + self.assertEqual(int(ver), 3) + # test __index__: range() doesn't call __int__ + self.assertEqual(list(range(ver, ver)), []) + class TestVersion(fixture.Pathed): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/migrate_repository.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/migrate_repository.py --- old/sqlalchemy-migrate-0.9.6/migrate/versioning/migrate_repository.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/migrate_repository.py 2015-08-31 23:04:29.000000000 +0200 @@ -13,13 +13,9 @@ def usage(): """Gives usage information.""" - print """Usage: %(prog)s repository-to-migrate - - Upgrade your repository to the new flat format. - - NOTE: You should probably make a backup before running this. - """ % {'prog': sys.argv[0]} - + print("Usage: %s repository-to-migrate" % sys.argv[0]) + print("Upgrade your repository to the new flat format.") + print("NOTE: You should probably make a backup before running this.") sys.exit(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/repository.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/repository.py --- old/sqlalchemy-migrate-0.9.6/migrate/versioning/repository.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/repository.py 2015-08-31 23:04:29.000000000 +0200 @@ -62,7 +62,7 @@ def run(self, *p, **k): """Run the changeset scripts""" - for version, script in self: + for ver, script in self: script.run(*p, **k) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/__init__.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/__init__.py --- old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/__init__.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/__init__.py 2015-08-31 23:04:29.000000000 +0200 @@ -164,7 +164,7 @@ engine.dispose() -class Memoize: +class Memoize(object): """Memoize(fn) - an instance which acts like fn but memoizes its arguments Will only work on functions with non-mutable arguments diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/importpath.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/importpath.py --- old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/importpath.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/importpath.py 2015-08-31 23:04:29.000000000 +0200 @@ -1,18 +1,30 @@ import os import sys -from six.moves import reload_module as reload +PY33 = sys.version_info >= (3, 3) + +if PY33: + from importlib import machinery +else: + from six.moves import reload_module as reload + def import_path(fullpath): """ Import a file with full path specification. Allows one to import from anywhere, something __import__ does not do. """ - # http://zephyrfalcon.org/weblog/arch_d7_2002_08_31.html - path, filename = os.path.split(fullpath) - filename, ext = os.path.splitext(filename) - sys.path.append(path) - module = __import__(filename) - reload(module) # Might be out of date during tests - del sys.path[-1] - return module - + if PY33: + name = os.path.splitext(os.path.basename(fullpath))[0] + return machinery.SourceFileLoader( + name, fullpath).load_module(name) + else: + # http://zephyrfalcon.org/weblog/arch_d7_2002_08_31.html + path, filename = os.path.split(fullpath) + filename, ext = os.path.splitext(filename) + sys.path.append(path) + try: + module = __import__(filename) + reload(module) # Might be out of date during tests + return module + finally: + del sys.path[-1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/version.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/version.py --- old/sqlalchemy-migrate-0.9.6/migrate/versioning/version.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/version.py 2015-08-31 23:04:29.000000000 +0200 @@ -65,6 +65,9 @@ def __int__(self): return int(self.value) + def __index__(self): + return int(self.value) + if six.PY3: def __hash__(self): return hash(self.value) @@ -252,7 +255,7 @@ self.python = script.PythonScript(path) -class Extensions: +class Extensions(object): """A namespace for file extensions""" py = 'py' sql = 'sql' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/requirements.txt new/sqlalchemy-migrate-0.10.0/requirements.txt --- old/sqlalchemy-migrate-0.9.6/requirements.txt 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/requirements.txt 2015-08-31 23:04:29.000000000 +0200 @@ -1,9 +1,12 @@ -pbr>=0.6,!=0.7,<1.0 +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. +pbr>=1.3,<2.0 # never put a cap on this, *ever*, sqla versions are handled via # tox, and if SQLA is capped it will only make it so we aren't testing # against all the versions we are compatible with. -SQLAlchemy>=0.7.8,!=0.9.5,<=0.9.99 +SQLAlchemy>=0.7.8,!=0.9.5 decorator six>=1.7.0 sqlparse diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/setup.cfg new/sqlalchemy-migrate-0.10.0/setup.cfg --- old/sqlalchemy-migrate-0.9.6/setup.cfg 2015-03-31 22:08:31.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/setup.cfg 2015-08-31 23:05:45.000000000 +0200 @@ -16,6 +16,9 @@ Programming Language :: Python :: 2 Programming Language :: Python :: 2.7 Programming Language :: Python :: 2.6 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.3 + Programming Language :: Python :: 3.4 [files] packages = @@ -32,7 +35,7 @@ source-dir = doc/source [egg_info] -tag_svn_revision = 0 tag_date = 0 +tag_svn_revision = 0 tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/setup.py new/sqlalchemy-migrate-0.10.0/setup.py --- old/sqlalchemy-migrate-0.9.6/setup.py 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/setup.py 2015-08-31 23:04:29.000000000 +0200 @@ -16,6 +16,14 @@ import setuptools +# In python < 2.7.4, a lazy loading of package `pbr` will break +# setuptools if some other modules registered functions in `atexit`. +# solution from: http://bugs.python.org/issue15881#msg170215 +try: + import multiprocessing # noqa +except ImportError: + pass + setuptools.setup( - setup_requires=['pbr'], + setup_requires=['pbr>=1.3'], pbr=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/PKG-INFO new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/PKG-INFO --- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/PKG-INFO 2015-03-31 22:08:30.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/PKG-INFO 2015-08-31 23:05:45.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: sqlalchemy-migrate -Version: 0.9.6 +Version: 0.10.0 Summary: Database schema migration for SQLAlchemy Home-page: http://www.openstack.org/ Author: OpenStack @@ -22,15 +22,16 @@ Help ---- - Sphinx documentation is available at the project page `packages.python.org - <http://packages.python.org/sqlalchemy-migrate/>`_. + Sphinx documentation is available at the project page `readthedocs.org + <https://sqlalchemy-migrate.readthedocs.org/>`_. - Users and developers can be found at #sqlalchemy-migrate on Freenode IRC + Users and developers can be found at #openstack-dev on Freenode IRC network and at the public users mailing list `migrate-users <http://groups.google.com/group/migrate-users>`_. New releases and major changes are announced at the public announce mailing - list `migrate-announce <http://groups.google.com/group/migrate-announce>`_ + list `openstack-dev + <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_ and at the Python package index `sqlalchemy-migrate <http://pypi.python.org/pypi/sqlalchemy-migrate>`_. @@ -45,16 +46,13 @@ To run automated tests: - * Copy test_db.cfg.tmpl to test_db.cfg - * Edit test_db.cfg with database connection strings suitable for running tests. - (Use empty databases.) - * $ pip install -r requirements.txt -r test-requirements.txt - * $ python setup.py develop - * $ testr run --parallel + * install tox: ``pip install -U tox`` + * run tox: ``tox`` + * to test only a specific Python version: ``tox -e py27`` (Python 2.7) Please report any issues with sqlalchemy-migrate to the issue tracker at - `code.google.com issues - <http://code.google.com/p/sqlalchemy-migrate/issues/list>`_ + `Launchpad issues + <https://bugs.launchpad.net/sqlalchemy-migrate>`_ Platform: UNKNOWN @@ -67,3 +65,6 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/pbr.json new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/pbr.json --- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/pbr.json 2015-03-31 22:08:30.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/pbr.json 2015-08-31 23:05:45.000000000 +0200 @@ -1 +1 @@ -{"git_version": "e57ee4c", "is_release": true} \ No newline at end of file +{"git_version": "fe3e08a", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/requires.txt new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/requires.txt --- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/requires.txt 2015-03-31 22:08:30.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/requires.txt 2015-08-31 23:05:45.000000000 +0200 @@ -1,5 +1,5 @@ -pbr>=0.6,!=0.7,<1.0 -SQLAlchemy>=0.7.8,!=0.9.5,<=0.9.99 +pbr>=1.3,<2.0 +SQLAlchemy>=0.7.8,!=0.9.5 decorator six>=1.7.0 sqlparse diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/test-requirements.txt new/sqlalchemy-migrate-0.10.0/test-requirements.txt --- old/sqlalchemy-migrate-0.9.6/test-requirements.txt 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/test-requirements.txt 2015-08-31 23:04:29.000000000 +0200 @@ -1,14 +1,14 @@ # Install bounded pep8/pyflakes first, then let flake8 install -pep8==1.4.5 -pyflakes>=0.7.2,<0.7.4 -flake8==2.0 -hacking>=0.8.0,<0.9 +pep8==1.5.7 +pyflakes==0.8.1 +flake8>=2.2.4,<=2.4.1 +hacking>=0.10.0,<0.11 coverage>=3.6 discover feedparser fixtures>=0.3.14 -mock>=1.0 +mock>=1.2 mox>=0.5.3 psycopg2 python-subunit>=0.0.18 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/tox.ini new/sqlalchemy-migrate-0.10.0/tox.ini --- old/sqlalchemy-migrate-0.9.6/tox.ini 2015-03-31 22:07:45.000000000 +0200 +++ new/sqlalchemy-migrate-0.10.0/tox.ini 2015-08-31 23:04:29.000000000 +0200 @@ -80,6 +80,8 @@ python setup.py testr --slowest --testr-args='{posargs}' [flake8] +# E111 indentation is not a multiple of four +# E113 unexpected indentation # E121 continuation line indentation is not a multiple of four # E122 continuation line missing indentation or outdented # E123 closing bracket does not match indentation of opening bracket's line @@ -88,12 +90,15 @@ # E126 continuation line over-indented for hanging indent # E127 continuation line over-indented for visual indent # E128 continuation line under-indented for visual indent +# E129 visually indented line with same indent as next logical line +# E131 continuation line unaligned for hanging indent # E202 whitespace before ')' # E203 whitespace before ',' # E225 missing whitespace around operator # E226 missing whitespace around arithmetic operator # E228 missing whitespace around modulo operator # E231 missing whitespace after ',' +# E265 block comment should start with '# ' # H234 assertEquals is deprecated, use assertEqual # E251 unexpected spaces around keyword / parameter equals # E261 at least two spaces before inline comment @@ -122,9 +127,10 @@ # H402 one line docstring needs punctuation. # H403 multi line docstring end on new line # H404 multi line docstring should start with a summary +# H405 multi line docstring summary not separated with an empty line # H501 Do not use locals() for string formatting # W391 blank line at end of file -ignore = E121,E122,E123,E124,E125,E126,E127,E128,E202,E203,E225,E226,E228,E231,E251,E261,E272,E301,E302,E303,E401,E501,E502,E702,E712,F401,F403,F811,F821,F841,H101,H201,H202,H233,H234,H301,H302,H306,H401,H402,H403,H404,H501,W391 +ignore = E111,E113,E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E202,E203,E225,E226,E228,E231,E251,E261,E265,E272,E301,E302,E303,E401,E501,E502,E702,E712,F401,F403,F811,F821,F841,H101,H201,H202,H233,H234,H301,H302,H306,H401,H402,H403,H404,H405,H501,W391 show-source = true builtins = _ exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build