Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tests for python 3.7 #644

Merged
merged 11 commits into from
Sep 11, 2020
35 changes: 23 additions & 12 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,17 @@ matrix:
python: 2.7
env: TOX_ENV=py27-static
- stage: quick_static3
python: 3.6
env: TOX_ENV=py36-static
python: 3.7
env: TOX_ENV=py37-static
- stage: docs
python: 3.6
env: TOX_ENV=docs
- stage: examples
python: 2.7
env: TOX_ENV=py27-examples
- stage: quick_examples3
python: 3.6
env: TOX_ENV=py36-examples
python: 3.7
env: TOX_ENV=py37-examples
- stage: test
python: 2.7
env: TOX_ENV=py27-oldest-lib
Expand Down Expand Up @@ -84,12 +84,21 @@ matrix:
- stage: test
python: 3.6
env: TOX_ENV=py36-pinned-lib
- stage: quick_test3
python: 3.6
env: TOX_ENV=py36-latest-lib
- stage: test
python: 3.6
env: TOX_ENV=py36-extra-lib
- stage: test
python: 3.7
env: TOX_ENV=py37-oldest-lib
- stage: test
python: 3.7
env: TOX_ENV=py37-pinned-lib
- stage: quick_test3
daviskirk marked this conversation as resolved.
Show resolved Hide resolved
python: 3.7
env: TOX_ENV=py37-latest-lib
- stage: test
python: 3.7
env: TOX_ENV=py37-extra-lib
- stage: deploy
script: skip
deploy:
Expand All @@ -113,18 +122,20 @@ matrix:
- stage: mastereventlet
python: 3.6
env: TOX_ENV=py36-mastereventlet
- stage: mastereventlet
python: 3.7
env: TOX_ENV=py37-mastereventlet
- stage: branchcoverage
python: 3.6
env: TOX_ENV=py36-branchcoverage-lib
python: 3.7
env: TOX_ENV=py37-branchcoverage-lib
fast_finish: true
allow_failures:
- env: TOX_ENV=py27-mastereventlet
- env: TOX_ENV=py34-mastereventlet
- env: TOX_ENV=py35-mastereventlet
- env: TOX_ENV=py36-mastereventlet
- env: TOX_ENV=py36-branchcoverage-lib
- env: TOX_ENV=py37-mastereventlet
- env: TOX_ENV=py37-branchcoverage-lib

script:
- tox -e $TOX_ENV


6 changes: 5 additions & 1 deletion nameko/testing/pytest.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import absolute_import

import pytest
import six

from nameko import config

Expand Down Expand Up @@ -124,7 +125,10 @@ def rabbit_manager(request):

@pytest.yield_fixture(scope='session')
def vhost_pipeline(request, rabbit_manager):
from collections import Iterable
if six.PY2: # pragma: no cover
from collections import Iterable # pylint: disable=E0611
else: # pragma: no cover
from collections.abc import Iterable # pylint: disable=E0611,E0401
from six.moves.urllib.parse import urlparse # pylint: disable=E0401
import random
import string
Expand Down
10 changes: 7 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
install_requires=[
"click>=7.0",
"dnspython<2",
"eventlet>=0.20.1",
"eventlet>=0.20.1;python_version<'3.6'",
"eventlet>=0.21.0;python_version>='3.6' and python_version<'3.7'",
"eventlet>=0.26.0;python_version>='3.7'",
"kombu>=4.2.0,<5",
"mock>=1.2",
"path.py>=6.2",
Expand All @@ -36,14 +38,16 @@
],
extras_require={
'dev': [
"astroid==1.6.5",
"astroid==2.2.5;python_version>='3'",
"astroid==1.6.5;python_version<'3'",
"coverage==4.5.1",
"flake8==3.3.0",
"isort==4.2.15",
"mccabe==0.6.1",
"pycodestyle==2.3.1",
"pyflakes==1.5.0",
"pylint==1.8",
"pylint==2.3.1;python_version>='3'",
"pylint==1.8.0;python_version<'3'",
"pytest==3.6.3",
"pytest-cov==2.5.1",
"pytest-timeout==1.3.0",
Expand Down
19 changes: 13 additions & 6 deletions test/test_rpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,15 +386,22 @@ def test_rpc_headers(container_factory):
'otherheader': 'othervalue'
}

headers = {}

rpc_consumer = get_extension(container, RpcConsumer)

with patch.object(
rpc_consumer, 'handle_result', wraps=rpc_consumer.handle_result
) as patched:
original_handle_result = rpc_consumer.handle_result

def side_effect(msg, *args):
original_handle_result(msg, *args)
headers.update(msg.headers)

with patch.object(rpc_consumer, 'handle_result') as patched:

patched.side_effect = side_effect

# use a standalone rpc client to call exampleservice.say_hello()
with ServiceRpcClient(
"exampleservice", context_data
) as client:
with ServiceRpcClient("exampleservice", context_data) as client:
assert client.say_hello() == "hello"

# headers as per context data, plus call stack
Expand Down
6 changes: 4 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
[tox]
envlist = {py27,py34,py35,py36}-{oldest,pinned,latest,extra}-lib, {py27,py34,py35,py36}-mastereventlet, py36-branchcoverage-lib, {py27,py36}-examples, docs, {py27,py36}-static
envlist = {py27,py34,py35,py36,py37}-{oldest,pinned,latest,extra}-lib, {py27,py34,py35,py36,py37}-mastereventlet, py37-branchcoverage-lib, {py27,py37}-examples, docs, {py27,py37}-static
skipsdist = True

[testenv]
deps =
# oldest supported libraries for each python
{py27,py34,py35}-oldest: eventlet==0.20.1
py36-oldest: eventlet==0.21.0
py37-oldest: eventlet==0.25.1
oldest: kombu==4.2.0
oldest: mock==1.2.0
oldest: path.py==6.2
Expand All @@ -17,6 +18,7 @@ deps =

# pinned library versions
{py34,py35,py36}-{pinned,extra}: eventlet==0.23.0
py37-{pinned,extra}: eventlet==0.26.0
pinned: kombu==4.2.1
pinned: mock==2.0.0
pinned: path.py==11.0.1
Expand All @@ -25,7 +27,7 @@ deps =
pinned: werkzeug==0.14.1
pinned: wrapt==1.10.11

{py34,py35,py36}-extra: regex==2018.07.11
{py34,py35,py36,py37}-extra: regex==2018.07.11


setenv =
Expand Down