diff --git a/setup.py b/setup.py index 8c6876e..3c6ba2a 100755 --- a/setup.py +++ b/setup.py @@ -1,10 +1,21 @@ #!/usr/bin/env python from setuptools import find_packages, setup +import sys import versioneer README = open('README.rst', 'r').read() +install_requires = [ + 'future>=0.14.0; python_version<"3"', + 'futures; python_version<"3.2"', +] + +if sys.version_info[0] == 2: + install_requires.append('ujson<=2.0.3; platform_system!="Windows"') +else: + install_requires.append('ujson>=3.0.0') + setup( name='python-jsonrpc-server', @@ -31,11 +42,7 @@ # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html - install_requires=[ - 'future>=0.14.0; python_version<"3"', - 'futures; python_version<"3.2"', - 'ujson<=1.35; platform_system!="Windows"', - ], + install_requires=install_requires, # List additional groups of dependencies here (e.g. development # dependencies). You can install these using the following syntax, diff --git a/test/test_streams.py b/test/test_streams.py index 480a73b..6985aec 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -1,7 +1,9 @@ # Copyright 2018 Palantir Technologies, Inc. # pylint: disable=redefined-outer-name from io import BytesIO +import datetime import os +import sys import mock import pytest @@ -95,11 +97,21 @@ def test_writer(wfile, writer): ) +class JsonDatetime(datetime.datetime): + """Monkey path json datetime.""" + def __json__(self): + if sys.version_info.major == 3: + dif = int(self.timestamp()) + else: + dif = int((self - datetime.datetime(1970, 1, 1)).total_seconds()) + return '{0}'.format(dif) + + def test_writer_bad_message(wfile, writer): # A datetime isn't serializable(or poorly serializable), # ensure the write method doesn't throw, but the result could be empty # or the correct datetime - import datetime + datetime.datetime = JsonDatetime writer.write(datetime.datetime( year=2019, month=1,