[openstack-dev] [horizon] Support for Django 1.7: there's a bit of work, though it looks fixable to me...
Thomas Goirand
zigo at debian.org
Sun Aug 3 10:55:19 UTC 2014
Hi,
The Debian maintainer of Django would like to upload Django 1.7 before
Jessie is frozen on the 5th of November. As for OpenStack, I would like
Icehouse to be in Jessie, since it will be supported by major companies
(RedHat and Canonical both will use Icehouse as LTS, and will work on
security for a longer time than previously planned in the OpenStack
community).
Though Horizon Icehouse doesn't currently work with Django 1.7. The
first thing to fix would be the TEMPLATE_DIRS thing:
./run_tests.sh -N -P || true
Running Horizon application tests
Traceback (most recent call last):
File
"/home/zigo/sources/openstack/icehouse/horizon/build-area/horizon-2014.1.1/manage.py",
line 25, in <module>
execute_from_command_line(sys.argv)
File
"/usr/lib/python2.7/dist-packages/django/core/management/__init__.py",
line 385, in execute_from_command_line
utility.execute()
[... not useful stack dump ...]
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line
42, in _setup
self._wrapped = Settings(settings_module)
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line
110, in __init__
"Please fix your settings." % setting)
django.core.exceptions.ImproperlyConfigured: The TEMPLATE_DIRS setting
must be a tuple. Please fix your settings.
Running openstack_dashboard tests
WARNING:root:No local_settings file found.
Then of course, the rest of the tests are completely broken because
there's no local_settings. Adding a comma at the end of:
TEMPLATE_DIRS = (os.path.join(ROOT_PATH, 'tests', 'templates'))
in horizon/test/settings.py fixes the issue. Note that this works in
both Django 1.6 and 1.7. Some other TEMPLATE_DIRS declaration already
have the comma, so I guess it's fine to add it. Which is why I did this:
https://review.openstack.org/111561
FYI, there's this document that talks about it:
https://docs.djangoproject.com/en/1.7/releases/1.7/#backwards-incompatible-changes-in-1-7
Then, after fixing this, I get this error:
======================================================================
ERROR: Failure: TypeError (Error when calling the metaclass bases
function() argument 1 must be code, not str)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nose/loader.py", line 414, in
loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 47, in
importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 94, in
importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File
"/home/zigo/sources/openstack/icehouse/horizon/build-area/horizon-2014.1.1/horizon/test/tests/tables.py",
line 28, in <module>
from horizon.test import helpers as test
File
"/home/zigo/sources/openstack/icehouse/horizon/build-area/horizon-2014.1.1/horizon/test/helpers.py",
line 184, in <module>
class JasmineTests(SeleniumTestCase):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
There's the same issue in the definition of SeleniumTestCase() in
openstack_dashboard/test/helpers.py (line 365 in Icehouse).
Since I don't really care about selenium (it can't be tested in Debian
because it's non-free), I commented out the class
JasmineTests(SeleniumTestCase), then I get more errors. A few instances
of this one:
File
"/home/zigo/sources/openstack/icehouse/horizon/build-area/horizon-2014.1.1/horizon/tables/base.py",
line 206, in <lambda>
"average": lambda data: sum(data, 0.0) / len(data)
TypeError: unsupported operand type(s) for +: 'float' and 'str'
I'm not a Django expert, so I it'd be awesome to get help on this. Best
would be that:
1/ Support for Django 1.7 is added to Juno
2/ The changes are backported to Icehouse (even if this doesn't make it
into the stable branch because of "let's stay safe", I can add the
patches as Debian specific).
Thoughts from the Horizon team would be welcome.
Cheers,
Thomas Goirand (zigo)
More information about the OpenStack-dev
mailing list