diff --git a/swift/stats/log_processor.py b/swift/stats/log_processor.py index 6fd6c68597..0e1a2dc24b 100644 --- a/swift/stats/log_processor.py +++ b/swift/stats/log_processor.py @@ -73,8 +73,7 @@ class LogProcessor(object): self._internal_proxy = InternalProxy(proxy_server_conf, self.logger, retries=3) - else: - return self._internal_proxy + return self._internal_proxy def process_one_file(self, plugin_name, account, container, object_name): self.logger.info('Processing %s/%s/%s with plugin "%s"' % (account, diff --git a/test/unit/stats/test_log_processor.py b/test/unit/stats/test_log_processor.py index 4ff73eccf3..55a73f2d46 100644 --- a/test/unit/stats/test_log_processor.py +++ b/test/unit/stats/test_log_processor.py @@ -14,9 +14,32 @@ # limitations under the License. import unittest +import os +from contextlib import contextmanager +from tempfile import NamedTemporaryFile +from swift.common.utils import readconf +from swift.common import internal_proxy from swift.stats import log_processor +@contextmanager +def tmpfile(content): + with NamedTemporaryFile('w', delete=False) as f: + file_name = f.name + f.write(str(content)) + try: + yield file_name + finally: + os.unlink(file_name) + +class FakeApp(object): + def __init__(self, *args, **kwargs): + pass + + def __call__(self, env, start_response): + return "FAKE APP" + + class DumbLogger(object): def __getattr__(self, n): return self.foo @@ -63,6 +86,24 @@ class TestLogProcessor(unittest.TestCase): } } + def test_create_internal_proxy(self): + internal_proxy.BaseApplication = FakeApp + dummy_proxy_config = """[app:proxy-server] +use = egg:swift#proxy +""" + dummy_config_template = """[log-processor] +proxy_server_conf = %s +swift_account = +""" + with tmpfile(dummy_proxy_config) as proxy_config_file: + dummy_config = dummy_config_template % proxy_config_file + with tmpfile(dummy_config) as config_file: + conf = readconf(config_file) + d = log_processor.LogProcessorDaemon(conf) + self.assert_(isinstance(d.log_processor.internal_proxy, + log_processor.InternalProxy)) + + def test_access_log_line_parser(self): access_proxy_config = self.proxy_config.copy() access_proxy_config.update({