summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Marshall <catchjosh@gmail.com>2021-03-30 17:29:39 +0900
committerJosh Marshall <catchjosh@gmail.com>2021-03-30 17:29:39 +0900
commit42d644ac2731f929042b5562a5b69c89eb6cf1a0 (patch)
treec985889f5d660ffd6a232481cfcad11b2fdd716c
parent1278504cb492638bcbec1e4576265a62f7b655f9 (diff)
parent822561da30dbc5720e8540e246a06cb113cace34 (diff)
downloadjsonrpclib-42d644ac2731f929042b5562a5b69c89eb6cf1a0.tar.gz
Merging.
-rw-r--r--.circleci/config.yml16
-rw-r--r--jsonrpclib/SimpleJSONRPCServer.py8
-rw-r--r--tests.py10
-rw-r--r--tox.ini5
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'):
diff --git a/tests.py b/tests.py
index e3e74de..9a104e0 100644
--- a/tests.py
+++ b/tests.py
@@ -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
diff --git a/tox.ini b/tox.ini
index ad56a75..9b53f09 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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