Get Keystone Running in Python 3
Keystone should run just as well under Python 3 as it does under Python 2. There is currently no way to run under Python 3 due to issues in Keystone itself as well as many third-party libraries. My goal is to get to the point where I can work on Keystone using Python3 as my primary Python version.
The keystone-py3kcompat blueprint (https:/
This blueprint will target running Keystone on Python 3 by:
- making the Jenkins job gate-keystone-
- dealing with issues in third-party libraries
- fixing any code issues not addressed by keystone-py3kcompat
Blueprint information
- Status:
- Complete
- Approver:
- Steve Martinelli
- Priority:
- Low
- Drafter:
- David Stanek
- Direction:
- Approved
- Assignee:
- David Stanek
- Definition:
- Approved
- Series goal:
- Accepted for newton
- Implementation:
-
Implemented
- Milestone target:
-
newton-1
- Started by
- Dolph Mathews
- Completed by
- Steve Martinelli
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Make the py33 Jenkins job happy
Gerrit topic: https:/
Addressed by: https:/
Moves database setup/teardown closer to its usage
Addressed by: https:/
First real Python 3 tests
Addressed by: https:/
Replace all use of mox with mock
Addressed by: https:/
setUp must be called on a fixture's parent first
Addressed by: https:/
Fix cache configuration checks
Addressed by: https:/
Fixed the size limit tests in Python 3
Addressed by: https:/
Fixed the policy tests in Python 3
Addressed by: https:/
Adds several more tests to the Python 3 test run
Addressed by: https:/
wip: this needs to be made in oslo
Addressed by: https:/
Sync with oslo-incubator 74ae271
Addressed by: https:/
Middleware tests now run under Python3
Addressed by: https:/
Adds a fork of python-ldap for Py3 testing
Addressed by: https:/
Updates Python3 requirements to match Python2
Addressed by: https:/
Adds oslo.db support for Python 3 tests
Addressed by: https:/
Fixes a Python3 syntax error
Addressed by: https:/
Adds several more test modules that pass on Py3
Addressed by: https:/
Fixes test_wsgi for Python3
Addressed by: https:/
Fixes test_exceptions.py for Python3
Gerrit topic: https:/
Addressed by: https:/
Disables LDAP unit tests
Addressed by: https:/
Reduces the amount of mocked imports for Python 3
Addressed by: https:/
Add the new oslo.i18n as a dependency for Python 3
Addressed by: https:/
Sync Py2 and Py3 requirements files
Addressed by: https:/
Mocks out the memcache library for tests
Addressed by: https:/
Fixes a type check to make it work in Python 3
Addressed by: https:/
Updates Python3 requirements
Gerrit topic: https:/
Addressed by: https:/
pep8 whitespace changes
Addressed by: https:/
Fixes order of imports for pep8
Addressed by: https:/
Ignore multiple imports per line for six.moves
Addressed by: https:/
Replaced filter with a list comprehension
Addressed by: https:/
eventlet now supports Python3
Addressed by: https:/
pycadf now supports Python3
Addressed by: https:/
Fixes mocking of oslo messaging for Python3
Addressed by: https:/
Updates the *py3 requirements files
Addressed by: https:/
Fixes use of dict methods for Python3
Addressed by: https:/
Handles Python3 builtin changes
Addressed by: https:/
Handles modules that moved in Python3
Addressed by: https:/
Fixes a whitespace issue
Addressed by: https:/
Add mocking for ldappool for Python3 tests
Addressed by: https:/
Fixes deprecations test for Python3
Addressed by: https:/
Refactor deprecations tests
Addressed by: https:/
Add mocking for memcache for Python3 tests
Addressed by: https:/
basestring no longer exists in Python3
Addressed by: https:/
Fixes broken federation test
Addressed by: https:/
Fix tox -e py34
Gerrit topic: https:/
Addressed by: https:/
Python 3: Replace assertRaisesRegexp to its six implementation
Addressed by: https:/
test_
Addressed by: https:/
Fix pemutils for py34
Gerrit topic: https:/
Addressed by: https:/
Fix test_utils for py34
Addressed by: https:/
Ensure database options registered for tests
Addressed by: https:/
Fix s3.core for py34
Addressed by: https:/
Fix test_exception.py for py34
Addressed by: https:/
test_
Gerrit topic: https:/
Addressed by: https:/
Fix SmarterEncoder for python3
Addressed by: https:/
Update test modules passing on py34
Addressed by: https:/
Handle fernet payload timestamp differences
Addressed by: https:/
Fix fernet key writing for python 3
Addressed by: https:/
Fix fernet padding for python 3
Addressed by: https:/
Fix key_repository_
Addressed by: https:/
Adds already passing tests to py34 run
Addressed by: https:/
Fixes kvs cache key mangling issue for Py3
Addressed by: https:/
Use ldap3 for DN comparison
Addressed by: https:/
Use six.moves.
Addressed by: https:/
Replace unicode with six.text_type
Gerrit topic: https:/
Addressed by: https:/
test_
Addressed by: https:/
Consolidate `test_contrib_
Addressed by: https:/
Initialize the policy engine where it is needed
Gerrit topic: https:/
Addressed by: https:/
Uses open context manager for templated catalogs
Addressed by: https:/
Stop using nose as a Python3 test runner
Addressed by: https:/
Enables token_data_helper tests for Python3
Addressed by: https:/
Disable the ipv6 tests in py34
Addressed by: https:/
Enables the notification tests in py3
Addressed by: https:/
Fix keystone.
Addressed by: https:/
Fixes the templated backend tests for Python3
Addressed by: https:/
Fixes to get cert tests running in Py3
Addressed by: https:/
Fixes hacking for Py3 tests
Addressed by: https:/
Port test_v2 unit test to Python 3
Addressed by: https:/
Port test_v3_auth unit test to Python 3
Addressed by: https:/
Add python 3 release note.
Work Items
Work items:
Temporarily remove broken dependencies from the Python 3 virtualenv: INPROGRESS
Temporarily disable the full test suite under Python 3: INPROGRESS
testtools (or fixtures) appears to fail under Python 3: INPROGRESS
replace mox with mock: TODO
See if there is a more automated way to manage the py3 requirements files: TODO
Python Paste contains syntax that is not Python 3 compatible: TODO
Remove eventlet dependency: TODO
oslo.messaging tries to pull in eventlet and should be fixed: TODO
pycadf seems to want eventlet too: TODO
pysqlite does not install on Python 3 (do we need it?): TODO
python-memcached does not install on Python 3: TODO
python-ldap does not install on Python 3: TODO