diff --git a/.travis.yml b/.travis.yml index efb75dde..436f545f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,5 +38,5 @@ jobs: dist: xenial sudo: true - stage: coverage - python: 3.6 + python: '3.6' script: codecov diff --git a/Makefile b/Makefile index 317a7c76..231ce357 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ .PHONY: docs init: pip install pipenv --upgrade - pipenv install --dev --skip-lock + pipenv install --dev test: # This runs all of the tests, on both Python 2 and Python 3. detox diff --git a/Pipfile b/Pipfile index 3e0fd729..b6705a6c 100644 --- a/Pipfile +++ b/Pipfile @@ -4,7 +4,7 @@ verify_ssl = true name = "pypi" [dev-packages] -pytest = ">=2.8.0" +pytest = ">=2.8.0,<4.1" codecov = "*" pytest-httpbin = ">=0.0.7" pytest-mock = "*" diff --git a/tests/test_requests.py b/tests/test_requests.py index 4bc1924f..89eff885 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -9,6 +9,7 @@ import pickle import collections import contextlib import warnings +import re import io import requests @@ -2418,9 +2419,17 @@ class TestPreparingURLs(object): ) ) def test_preparing_url(self, url, expected): + + def normalize_percent_encode(x): + # Helper function that normalizes equivalent + # percent-encoded bytes before comparisons + for c in re.findall(r'%[a-fA-F0-9]{2}', x): + x = x.replace(c, c.upper()) + return x + r = requests.Request('GET', url=url) p = r.prepare() - assert p.url == expected + assert normalize_percent_encode(p.url) == expected @pytest.mark.parametrize( 'url',