** Changed in: glance/grizzly Importance: Undecided => High ** Changed in: glance/grizzly Status: New => Fix Released
** Changed in: glance/grizzly Milestone: None => 2013.1 ** Changed in: glance/grizzly Assignee: (unassigned) => Alessio Ababilov (aababilov) -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Glance. https://bugs.launchpad.net/bugs/1154058 Title: Cannot run test_migrations.py: circular import in glance/db/sqlalchemy Status in OpenStack Image Registry and Delivery Service (Glance): Fix Released Status in Glance grizzly series: Fix Released Bug description: If I run test_migrations.py solely, I face a problem. $ nosetests test_migrations.py E ====================================================================== ERROR: Failure: ImportError (cannot import name models) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/.venv/lib/python2.6/site-packages/nose/loader.py", line 390, in loadTestsFromName addr.filename, addr.module) File "/tmp/.venv/lib/python2.6/site-packages/nose/importer.py", line 39, in importFromPath return self.importFromDir(dir_path, fqname) File "/tmp/.venv/lib/python2.6/site-packages/nose/importer.py", line 86, in importFromDir mod = load_module(part_fqname, fh, filename, desc) File "/tmp/glance/glance/tests/unit/test_migrations.py", line 42, in <module> from glance.db.sqlalchemy import models File "/tmp/glance/glance/db/sqlalchemy/models.py", line 30, in <module> import glance.db.sqlalchemy.api File "/tmp/glance/glance/db/sqlalchemy/api.py", line 35, in <module> from glance.db.sqlalchemy import models ImportError: cannot import name models ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1) The thing is that api.py depends on models.py that depends on api.py. Import statements in these files are such that api.py must be imported before models.py. That's why usually test_migrations doesn't fail when all tests are launched. However, thus test_migration _depends on test running order_ making testing procedure unreliable, including parallel testing. If you import models.py the first, you will face circular import problem. The bug is easy to fix (see explanations in http://effbot.org/zone /import-confusion.htm): just move glance.db.sqlalchemy.api import to the only place where it's required in models.py. To manage notifications about this bug go to: https://bugs.launchpad.net/glance/+bug/1154058/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp