diff options
author | Josh Marshall <catchjosh@gmail.com> | 2021-03-30 17:29:39 +0900 |
---|---|---|
committer | Josh Marshall <catchjosh@gmail.com> | 2021-03-30 17:29:39 +0900 |
commit | 42d644ac2731f929042b5562a5b69c89eb6cf1a0 (patch) | |
tree | c985889f5d660ffd6a232481cfcad11b2fdd716c | |
parent | 1278504cb492638bcbec1e4576265a62f7b655f9 (diff) | |
parent | 822561da30dbc5720e8540e246a06cb113cace34 (diff) | |
download | jsonrpclib-42d644ac2731f929042b5562a5b69c89eb6cf1a0.tar.gz |
Merging.
-rw-r--r-- | .circleci/config.yml | 16 | ||||
-rw-r--r-- | jsonrpclib/SimpleJSONRPCServer.py | 8 | ||||
-rw-r--r-- | tests.py | 10 | ||||
-rw-r--r-- | tox.ini | 5 |
4 files changed, 25 insertions, 14 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 569417e..b621812 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,11 +1,9 @@ version: 2.1 -orbs: - python: circleci/python@0.2.1 - jobs: build-and-test: - executor: python/default + docker: + - image: cimg/python:3.9.2 steps: - checkout - restore_cache: @@ -17,12 +15,14 @@ jobs: - run: name: Install CI dependencies command: pip3 install tox twine tox-pyenv - - run: - name: Install Python versions - command: pyenv install --skip-existing 3.5-dev 3.6-dev 3.7-dev 3.8-dev 3.9-dev + - run: pyenv install --skip-existing 3.5-dev + - run: pyenv install --skip-existing 3.6-dev + - run: pyenv install --skip-existing 3.7-dev + - run: pyenv install --skip-existing 3.8-dev + - run: pyenv install --skip-existing 3.9-dev - run: name: Set local Python versions - command: pyenv local 3.5-dev 3.6-dev 3.7-dev 3.8-dev 3.9-dev + command: pyenv local 3.5-dev 3.6-dev 3.7-dev 3.8-dev 3.9-dev 3.9.2 - save_cache: key: dev-cache-{{ checksum dev-requirements.txt }} paths: diff --git a/jsonrpclib/SimpleJSONRPCServer.py b/jsonrpclib/SimpleJSONRPCServer.py index 5addcf0..0bb1833 100644 --- a/jsonrpclib/SimpleJSONRPCServer.py +++ b/jsonrpclib/SimpleJSONRPCServer.py @@ -189,6 +189,11 @@ class SimpleJSONRPCRequestHandler( self.connection.shutdown(1) +class SimpleJSONRPCUnixRequestHandler(SimpleJSONRPCRequestHandler): + + disable_nagle_algorithm = False + + class SimpleJSONRPCServer(socketserver.TCPServer, SimpleJSONRPCDispatcher): allow_reuse_address = True @@ -210,6 +215,9 @@ class SimpleJSONRPCServer(socketserver.TCPServer, SimpleJSONRPCDispatcher): except OSError: logging.warning("Could not unlink socket %s", addr) + if requestHandler == SimpleJSONRPCRequestHandler: + requestHandler = SimpleJSONRPCUnixRequestHandler + socketserver.TCPServer.__init__( self, addr, requestHandler, bind_and_activate) if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): @@ -330,7 +330,10 @@ class InternalTests(unittest.TestCase): def test_single_namespace(self): client = self.get_client() + response = client.namespace.sum(1, 2, 4) + self.assertEqual(7, response) + request = json.loads(history.request) response = json.loads(history.response) verify_request = { @@ -342,8 +345,8 @@ class InternalTests(unittest.TestCase): } verify_request['id'] = request['id'] verify_response['id'] = request['id'] - self.assertTrue(verify_request == request) - self.assertTrue(verify_response == response) + self.assertEqual(verify_request, request) + self.assertEqual(verify_response, response) def test_history_defaults_to_20(self): client = self.get_client() @@ -445,6 +448,7 @@ class UnixSocketInternalTests(InternalTests): but over a Unix socket instead of a TCP socket. """ def setUp(self): + super().setUp() suffix = "%d.sock" % get_port() # Open to safer, alternative processes @@ -461,7 +465,6 @@ class UnixSocketInternalTests(InternalTests): ) def get_client(self): - print("Serving on {}".format(self.port)) return Server('unix:/%s' % self.port) def tearDown(self): @@ -551,6 +554,7 @@ def server_set_up(addr, address_family=socket.AF_INET): server.shutdown() server_proc = Thread(target=server.serve_forever) + server_proc.daemon = True server_proc.stop = stop server_proc.start() return server_proc @@ -2,6 +2,5 @@ envlist = py35,py36,py37,py38,py39 [testenv] deps= -rdev-requirements.txt -commands=flake8 - coverage run -m pytest tests.py - coverage report -i jsonrpclib/*.py +commands=coverage run -m pytest tests.py + coverage report -m jsonrpclib/*.py |