From ee38c6bb8b87fc7932074b32bf8a0733728c173b Mon Sep 17 00:00:00 2001 From: Hattori Keigo Date: Wed, 13 Feb 2019 15:57:35 +0900 Subject: [PATCH 1/2] Add `core` --- .travis.yml | 2 ++ rekcurd_client/core/__init__.py | 1 + rekcurd_client/{ => core}/rekcurd_worker_client.py | 4 ++-- setup.py | 4 ++-- test/core/__init__.py | 0 test/{ => core}/_client_application.py | 4 ++-- test/{ => core}/test_worker_client.py | 3 +-- test/{ => core}/test_worker_client_e2e.py | 6 +++--- tox.ini | 5 ++++- 9 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 rekcurd_client/core/__init__.py rename rekcurd_client/{ => core}/rekcurd_worker_client.py (98%) create mode 100644 test/core/__init__.py rename test/{ => core}/_client_application.py (98%) rename test/{ => core}/test_worker_client.py (99%) rename test/{ => core}/test_worker_client_e2e.py (97%) diff --git a/.travis.yml b/.travis.yml index 8dd22b8..b26d498 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,8 @@ matrix: env: TOXENV=py37 install: - pip install tox +before_install: +- export BOTO_CONFIG=/dev/null script: - tox notifications: diff --git a/rekcurd_client/core/__init__.py b/rekcurd_client/core/__init__.py new file mode 100644 index 0000000..c35fcde --- /dev/null +++ b/rekcurd_client/core/__init__.py @@ -0,0 +1 @@ +from .rekcurd_worker_client import RekcurdWorkerClient diff --git a/rekcurd_client/rekcurd_worker_client.py b/rekcurd_client/core/rekcurd_worker_client.py similarity index 98% rename from rekcurd_client/rekcurd_worker_client.py rename to rekcurd_client/core/rekcurd_worker_client.py index 8f76a58..d60408b 100644 --- a/rekcurd_client/rekcurd_worker_client.py +++ b/rekcurd_client/core/rekcurd_worker_client.py @@ -6,8 +6,8 @@ import types import grpc -from .protobuf import rekcurd_pb2, rekcurd_pb2_grpc -from .logger import SystemLoggerInterface +from rekcurd_client.protobuf import rekcurd_pb2, rekcurd_pb2_grpc +from rekcurd_client.logger import SystemLoggerInterface def error_handling(error_response): diff --git a/setup.py b/setup.py index 4c957f9..ce8d570 100644 --- a/setup.py +++ b/setup.py @@ -61,8 +61,8 @@ install_requires=REQUIRES, tests_require=TESTS_REQUIRES, extras_require=EXTRAS, - packages=['rekcurd_client', 'rekcurd_client.logger', - 'rekcurd_client.protobuf'], + packages=['rekcurd_client', 'rekcurd_client.core', + 'rekcurd_client.logger', 'rekcurd_client.protobuf'], include_package_data=True, long_description=LONG_DESCRIPTION, classifiers=[ diff --git a/test/core/__init__.py b/test/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/_client_application.py b/test/core/_client_application.py similarity index 98% rename from test/_client_application.py rename to test/core/_client_application.py index 1a61dd6..d5c2494 100644 --- a/test/_client_application.py +++ b/test/core/_client_application.py @@ -5,7 +5,7 @@ from rekcurd.utils import PredictResult -import rekcurd_client.rekcurd_worker_client +import rekcurd_client.core.rekcurd_worker_client from rekcurd_client.protobuf import rekcurd_pb2_grpc from rekcurd_client.logger import logger from rekcurd_client import RekcurdWorkerClient @@ -409,7 +409,7 @@ def _run_arrstring_arrstring(client: RekcurdWorkerClient): def run(scenario, channel): stub = rekcurd_pb2_grpc.RekcurdWorkerStub(channel) - client = rekcurd_client.rekcurd_worker_client.RekcurdWorkerClient(logger=logger, domain='example.com', app='rekcurd-sample', env='development') + client = rekcurd_client.core.rekcurd_worker_client.RekcurdWorkerClient(logger=logger, domain='example.com', app='rekcurd-sample', env='development') client.stub = stub try: return _IMPLEMENTATIONS[scenario](client) diff --git a/test/test_worker_client.py b/test/core/test_worker_client.py similarity index 99% rename from test/test_worker_client.py rename to test/core/test_worker_client.py index 1f7af42..2539b8b 100644 --- a/test/test_worker_client.py +++ b/test/core/test_worker_client.py @@ -6,8 +6,7 @@ import grpc_testing from rekcurd_client.protobuf import rekcurd_pb2 -from . import _client_application - +from test.core import _client_application target_service = rekcurd_pb2.DESCRIPTOR.services_by_name['RekcurdWorker'] diff --git a/test/test_worker_client_e2e.py b/test/core/test_worker_client_e2e.py similarity index 97% rename from test/test_worker_client_e2e.py rename to test/core/test_worker_client_e2e.py index b64e25c..e99eec1 100644 --- a/test/test_worker_client_e2e.py +++ b/test/core/test_worker_client_e2e.py @@ -1,14 +1,14 @@ import grpc from concurrent import futures -from . import * +from test import * from rekcurd_client.protobuf import rekcurd_pb2_grpc import unittest from functools import wraps from unittest.mock import patch, Mock from rekcurd.utils import PredictResult -import rekcurd_client.rekcurd_worker_client +import rekcurd_client.core.rekcurd_worker_client def patch_predictor(input_type, output_type): @@ -87,7 +87,7 @@ def setUpClass(cls): server.add_insecure_port("[::]:5000") server.start() cls.server = server - cls.client = rekcurd_client.rekcurd_worker_client.RekcurdWorkerClient(logger=client_logger, host='127.0.0.1:5000') + cls.client = rekcurd_client.core.rekcurd_worker_client.RekcurdWorkerClient(logger=client_logger, host='127.0.0.1:5000') @classmethod def tearDownClass(cls): diff --git a/tox.ini b/tox.ini index 7f72ebe..43a5ce5 100644 --- a/tox.ini +++ b/tox.ini @@ -10,11 +10,14 @@ deps = -r{toxinidir}/test-requirements.txt commands = python -V py.test -vvv -s +# Patch for https://github.com/travis-ci/travis-ci/issues/7940 +setenv = + BOTO_CONFIG = /dev/null [testenv:coverage] commands = python -V - nosetests --with-coverage --cover-package=rekcurd_client --cover-tests + nosetests --with-coverage --cover-package=rekcurd_client.core,rekcurd_client.logger --cover-tests [testenv:codecov] commands = From 15e522b71a9dc2f258bb2b4eb7197cbf3f8019eb Mon Sep 17 00:00:00 2001 From: Hattori Keigo Date: Wed, 13 Feb 2019 15:57:51 +0900 Subject: [PATCH 2/2] Add logger test --- rekcurd_client/__init__.py | 2 +- rekcurd_client/logger/logger_fluent.py | 1 + rekcurd_client/logger/logger_jsonlogger.py | 1 + test/logger/__init__.py | 0 test/logger/test_logger_fluent.py | 26 ++++++++++++++++++++++ test/logger/test_logger_jsonlogger.py | 26 ++++++++++++++++++++++ 6 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 test/logger/__init__.py create mode 100644 test/logger/test_logger_fluent.py create mode 100644 test/logger/test_logger_jsonlogger.py diff --git a/rekcurd_client/__init__.py b/rekcurd_client/__init__.py index 92be632..d8f2c8b 100644 --- a/rekcurd_client/__init__.py +++ b/rekcurd_client/__init__.py @@ -18,4 +18,4 @@ __project__ = _project.__project__ __version__ = _version.__version__ -from .rekcurd_worker_client import RekcurdWorkerClient +from .core import RekcurdWorkerClient diff --git a/rekcurd_client/logger/logger_fluent.py b/rekcurd_client/logger/logger_fluent.py index 3652aeb..3f568d5 100644 --- a/rekcurd_client/logger/logger_fluent.py +++ b/rekcurd_client/logger/logger_fluent.py @@ -32,6 +32,7 @@ def __init__(self, logger_name: str = 'rekcurd_client', log_level: int = logging formatter = handler.FluentRecordFormatter(custom_format) fluent_handler.setFormatter(formatter) fluent_handler.setLevel(log_level) + self.log.handlers = [] self.log.addHandler(fluent_handler) def exception(self, message: str) -> None: diff --git a/rekcurd_client/logger/logger_jsonlogger.py b/rekcurd_client/logger/logger_jsonlogger.py index 583e013..bf6374c 100644 --- a/rekcurd_client/logger/logger_jsonlogger.py +++ b/rekcurd_client/logger/logger_jsonlogger.py @@ -36,6 +36,7 @@ def __init__(self, logger_name: str = 'rekcurd_client', log_level: int = logging handler = logging.StreamHandler() formatter = self.JsonFormatter() handler.setFormatter(formatter) + self.log.handlers = [] self.log.addHandler(handler) self.log.setLevel(log_level) diff --git a/test/logger/__init__.py b/test/logger/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/logger/test_logger_fluent.py b/test/logger/test_logger_fluent.py new file mode 100644 index 0000000..3f67fc9 --- /dev/null +++ b/test/logger/test_logger_fluent.py @@ -0,0 +1,26 @@ +import unittest + +from rekcurd_client.logger import FluentSystemLogger + + +class FluentSystemLoggerTest(unittest.TestCase): + """Tests for FluentSystemLogger. + """ + + def setUp(self): + self.logger = FluentSystemLogger() + + def test_exception(self): + self.assertIsNone(self.logger.exception("Exception")) + + def test_error(self): + self.assertIsNone(self.logger.error("Error")) + + def test_debug(self): + self.assertIsNone(self.logger.debug("Debug")) + + def test_info(self): + self.assertIsNone(self.logger.info("Info")) + + def test_warn(self): + self.assertIsNone(self.logger.warn("Warn")) diff --git a/test/logger/test_logger_jsonlogger.py b/test/logger/test_logger_jsonlogger.py new file mode 100644 index 0000000..7e0f853 --- /dev/null +++ b/test/logger/test_logger_jsonlogger.py @@ -0,0 +1,26 @@ +import unittest + +from rekcurd_client.logger import JsonSystemLogger + + +class JsonSystemLoggerTest(unittest.TestCase): + """Tests for JsonSystemLogger. + """ + + def setUp(self): + self.logger = JsonSystemLogger() + + def test_exception(self): + self.assertIsNone(self.logger.exception("Exception")) + + def test_error(self): + self.assertIsNone(self.logger.error("Error")) + + def test_debug(self): + self.assertIsNone(self.logger.debug("Debug")) + + def test_info(self): + self.assertIsNone(self.logger.info("Info")) + + def test_warn(self): + self.assertIsNone(self.logger.warn("Warn"))