From 12354cd82be452a90d87f18b325bb345f680f7b1 Mon Sep 17 00:00:00 2001 From: Maru Newby Date: Thu, 5 Apr 2012 19:24:04 -0700 Subject: Stub out swift log configuration during testing * s3_token and swift_auth depend on swift.common.utils.get_logger, which configures a syslog handler in an OS X-incompatible way. This change ensures that get_logger is stubbed out for the swift middleware tests to allow the Keystone test suite to execute successfully under OS X. * Addresses bug 974583 Change-Id: Ibdb665d1ea65c13ef792767ad66251857629a702 --- tests/test_s3_token_middleware.py | 35 ++++++++++++++++++++--------------- tests/test_swift_auth_middleware.py | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/tests/test_s3_token_middleware.py b/tests/test_s3_token_middleware.py index b5f299b9..c254ee2b 100644 --- a/tests/test_s3_token_middleware.py +++ b/tests/test_s3_token_middleware.py @@ -15,19 +15,28 @@ # under the License. import json +import logging -import nose +import stubout +import unittest2 as unittest import webob -from keystone import test +from swift.common import utils as swift_utils -try: - # NOTE(chmou): We don't want to force to have swift installed for - # unit test so we skip it we have an ImportError. - from keystone.middleware import s3_token - skip = False -except ImportError: - skip = True +from keystone.middleware import s3_token + + +def setUpModule(self): + self.stubs = stubout.StubOutForTesting() + # Stub out swift_utils.get_logger. get_logger tries to configure + # syslogging to '/dev/log', which will fail on OS X. + def fake_get_logger(config, log_route=None): + return logging.getLogger(log_route) + self.stubs.Set(swift_utils, 'get_logger', fake_get_logger) + + +def tearDownModule(self): + self.stubs.UnsetAll() class FakeHTTPResponse(object): @@ -65,12 +74,8 @@ class FakeApp(object): return resp(env, start_response) -class S3TokenMiddlewareTest(test.TestCase): +class S3TokenMiddlewareTest(unittest.TestCase): def setUp(self, expected_env=None): - # We probably going to end-up with the same strategy than - # test_swift_auth when this is decided. - if skip: - raise nose.SkipTest('no swift detected') self.middleware = s3_token.S3Token(FakeApp(), {}) self.middleware.http_client_class = FakeHTTPConnection @@ -125,6 +130,6 @@ class S3TokenMiddlewareTest(test.TestCase): path = req.environ['PATH_INFO'] self.assertTrue(path.startswith('/v1/AUTH_FORCED_TENANT_ID')) + if __name__ == '__main__': - import unittest unittest.main() diff --git a/tests/test_swift_auth_middleware.py b/tests/test_swift_auth_middleware.py index 2a79d0ee..ea585a76 100644 --- a/tests/test_swift_auth_middleware.py +++ b/tests/test_swift_auth_middleware.py @@ -13,12 +13,30 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging + +import stubout import unittest2 as unittest import webob +from swift.common import utils as swift_utils + from keystone.middleware import swift_auth +def setUpModule(self): + self.stubs = stubout.StubOutForTesting() + # Stub out swift_utils.get_logger. get_logger tries to configure + # syslogging to '/dev/log', which will fail on OS X. + def fake_get_logger(config, log_route=None): + return logging.getLogger(log_route) + self.stubs.Set(swift_utils, 'get_logger', fake_get_logger) + + +def tearDownModule(self): + self.stubs.UnsetAll() + + class FakeApp(object): def __init__(self, status_headers_body_iter=None): self.calls = 0 -- cgit