From 93729fcfcf6a02a4462516d2954940e9f9bf4e51 Mon Sep 17 00:00:00 2001 From: Colleen Murphy Date: Wed, 5 Sep 2018 11:25:11 +0200 Subject: [PATCH] Use keystoneauth only in applicable test keystoneauth uses os-service-types as a run time dependency. os-service-types uses keystoneauth as a testing dependency. This causes an issue for packagers: in order to run the unit tests at build time, an os-service-types package must include keystoneauth as a build dependency, but since keystoneauth includes os-service-types as a run time dependency, it causes a circular dependency. To make it easier on packagers, this patch changes the usage of keystoneauth in the tests to only be used by the TestRemote class instead of the base TestCase class. This way, a packager could avoid including keystoneauth as a build dependency by choosing to skip just the problematic os-service-types test instead of skipping the entire test suite. Change-Id: I7f8da9c09f20ae808e1dc7aef2341396d91e7cf4 --- os_service_types/tests/base.py | 4 ---- os_service_types/tests/test_remote.py | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/os_service_types/tests/base.py b/os_service_types/tests/base.py index 731d152..38f0444 100644 --- a/os_service_types/tests/base.py +++ b/os_service_types/tests/base.py @@ -18,7 +18,6 @@ import copy import datetime -import keystoneauth1.session from oslotest import base import os_service_types.service_types @@ -30,9 +29,6 @@ class TestCase(base.BaseTestCase): def setUp(self): super(TestCase, self).setUp() - # use keystoneauth1 to get a Sessiom with no auth information - self.session = keystoneauth1.session.Session() - self.builtin_content = os_service_types.service_types.BUILTIN_DATA self.builtin_version = self.builtin_content['version'] diff --git a/os_service_types/tests/test_remote.py b/os_service_types/tests/test_remote.py index 2a1e8e5..bf3d714 100644 --- a/os_service_types/tests/test_remote.py +++ b/os_service_types/tests/test_remote.py @@ -24,6 +24,8 @@ available in these tests. from requests_mock.contrib import fixture as rm_fixture from testscenarios import load_tests_apply_scenarios as load_tests # noqa +import keystoneauth1.session + import os_service_types import os_service_types.service_types from os_service_types.tests import base @@ -39,6 +41,8 @@ class TestRemote(base.TestCase, base.ServiceDataMixin): 'GET', os_service_types.service_types.SERVICE_TYPES_URL, json=self.remote_content, headers={'etag': self.getUniqueString('etag')}) + # use keystoneauth1 to get a Sessiom with no auth information + self.session = keystoneauth1.session.Session() # Make an object that fetches from the network self.service_types = os_service_types.ServiceTypes( session=self.session)