a2fe5fd2e0
A while ago we copied Tempest networking API tests in to the Neutron repo, and along came thousands of lines of code of Tempest testing infrastructure (neutron.tests.tempest). For a while we periodically refreshed our fork via: tools/copy_api_tests_from_tempest.sh I think it's time we move away from that model by eliminating the fork. We do this by deleting unused code and importing the rest from tempest_lib. There's some Tempest code still not moved from Tempest to tempest_lib in tempest.common. I think it's preferable to import that code than to copy it, and Tempest cores mostly agree. Manila and Ironic also do the same. To be able to import from tempest I added it as a requirement: Since Tempest is not on PyPi, I had to get it from git. Only the api tests environment needs Tempest, so instead of adding it to test-requirements, I added it specifically to the api and api-constraints venvs. neutron.tests.tempest.test and neutron.tests.tempest.common.* still remain. These are tighly coupled with one another, and sadly since Neutron forked Tempest code, Tempest has made significant changes to those files that also require changes to the test files. I aim to get rid of the Neutron fork of these files in a follow up change. Also fixed import grouping in test files so that it's std libs, 3rd party libs, and then Neutron code. * Removed neutron.tests.tempest.config: - We only added one option after the fork. I created a new group called 'neutron_plugin_options' and moved the new option to that group. This is in preperation for the Tempest plugin architecture, where you're supposed to add new config options to a new group and not to existing configuration groups. Note that this is obviously a backward incompatible change, but it's to an option added in the same cycle. * Removed neutron.tests.tempest.test and neutron.tests.tempest.common. - This introduced an API change to the way we access Keystone, which required mechanical changes to a few tests (create_tenant calls need a different client now). - The way Tempest manages primary, admin and alternative tenant credentials was changed after we forked, which required another mechanical change to a few tests. * Cut all of the Keystone clients we don't need. We only need to create/delete tenants, the other clients were used in Tempest by actual Keystone tests. * Changed neutron.tests.api.base.BaseNetworkTest: - Re-implemented get_client_manager so that it returns the Neutron clients manager and not the one in the Tempest repo. - Updated it from the Tempest repo so that it uses the new way to manage credentials (Since it now uses the Tempest test base class and not our out of date forked copy). Change-Id: I4f9193dfe26f2d36985cb480a98709ec182a2f7b |
||
---|---|---|
.. | ||
services | ||
README.rst | ||
__init__.py | ||
config.py | ||
exceptions.py |
README.rst
WARNING
The files under this path were copied from tempest as part of the move of the api tests, and they will be removed as the required functionality is transitioned from tempest to tempest-lib. While it exists, only neutron.tests.api and neutron.tests.retargetable should be importing files from this path. neutron.tests.tempest.config uses the global cfg.CONF instance and importing it outside of the api tests has the potential to break Neutron's use of cfg.CONF.