Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
8c31db2694
!17 add support for Misdirected Request
From: @zhang-liang-pengkun 
Reviewed-by: @Charlie_li 
Signed-off-by: @Charlie_li
2023-01-09 07:11:06 +00:00
zhangliangpengkun
6f4fa0ebfa add support for Misdirected Request
Signed-off-by: zhangliangpengkun <zhangliangpengkun@xfusion.com>
2023-01-09 10:42:01 +08:00
openeuler-ci-bot
a659620791
!14 fix Duplicate requests in latest_requests if there are chunks
From: @zhang-liang-pengkun 
Reviewed-by: @Charlie_li 
Signed-off-by: @Charlie_li
2023-01-07 11:46:55 +00:00
zhangliangpengkun
1a11cf3c04 Duplicate requests in latest_requests if there are chunks
Signed-off-by: zhangliangpengkun <zhangliangpengkun@xfusion.com>
2023-01-07 17:45:55 +08:00
openeuler-ci-bot
c6893f7832
!8 update to version 1.1.4
From: @wang--ge 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2022-10-27 09:58:13 +00:00
wang--ge
6d8f52196a update to version 1.1.4 2022-10-27 16:28:52 +08:00
openeuler-ci-bot
79cad8c40d
!3 Rplace deprecate python-nose from python-nose2 dependence
Merge pull request !3 from baizg1107/openEuler-22.03-LTS-Next
2022-01-10 12:09:48 +00:00
bzg1107
6c422b2e62 replace nose from nose2 dependence 2022-01-05 13:57:38 +08:00
openeuler-ci-bot
4a89eb7381 !2 remove python2
Merge pull request !2 from zhangtao2020/master
2020-08-06 09:06:01 +08:00
zhangtao2020
035fb34621 Remove python2 2020-08-05 16:49:26 +08:00
9 changed files with 151 additions and 197 deletions

View File

@ -1,37 +0,0 @@
From 01474bf64e0434881059a3638abff5bb62eaedb1 Mon Sep 17 00:00:00 2001
From: Scott Moser <smoser@brickies.net>
Date: Tue, 24 Jan 2017 12:30:47 -0500
Subject: [PATCH] Call reset from setUp and tearDown in addition to enable and
disable.
When decorating a class via setUp and tearDown, reset() was not being
called. That was an unintentional change in behavior from previous versions.
Addresses #316.
---
httpretty/core.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/httpretty/core.py b/httpretty/core.py
index 4f72678..25df1fd 100644
--- a/httpretty/core.py
+++ b/httpretty/core.py
@@ -1580,6 +1580,7 @@ def httprettified(test):
else None)
def new_setUp(self):
+ httpretty.reset()
httpretty.enable()
if use_addCleanup:
self.addCleanup(httpretty.disable)
@@ -1594,6 +1595,7 @@ def httprettified(test):
def new_tearDown(self):
httpretty.disable()
+ httpretty.reset()
if original_tearDown:
original_tearDown(self)
klass.tearDown = new_tearDown
--
2.9.3

View File

@ -1,66 +0,0 @@
From 5d2f8d99c28519fe0cf47ebf5f043928d422b757 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Fri, 6 Jan 2017 17:56:43 -0800
Subject: [PATCH] Handle bugs in older urllib3 versions in one of the tests
Older urllib3 versions had a bug where they lower-cased header
names (in response header dicts). That makes one of our tests
fail with older urllib3, because the test expects a 'Server'
header. As this isn't our fault at all, just have the test cope
with it by checking if the header dict has a 'server' key and
replacing it with a 'Server' key with the same value.
urllib3 1.10 also had a bug when you called dict() on its
HTTPHeaderDict class; it would turn this:
{'headername': 'value'}
Into this:
{'headername': ['headername', 'value']}
That was fixed in 1.11, but RHEL 6 still has 1.10, so let's
work with that by doing dict(headerdict.items()) instead of
just dict(headerdict) (when we're recording the calls).
---
httpretty/core.py | 7 ++++++-
tests/functional/test_requests.py | 5 +++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/httpretty/core.py b/httpretty/core.py
index 34d1ed1..0c2d334 100644
--- a/httpretty/core.py
+++ b/httpretty/core.py
@@ -971,7 +971,12 @@ class httpretty(HttpBaseClass):
'response': {
'status': response.status,
'body': decode_utf8(response.data),
- 'headers': dict(response.headers)
+ # urllib3 1.10 had a bug if you just did:
+ # dict(response.headers)
+ # which would cause all the values to become lists
+ # with the header name as the first item and the
+ # true value as the second item. Workaround that
+ 'headers': dict(response.headers.items())
}
})
cls.enable()
diff --git a/tests/functional/test_requests.py b/tests/functional/test_requests.py
index 4e2063e..18c89f8 100644
--- a/tests/functional/test_requests.py
+++ b/tests/functional/test_requests.py
@@ -742,6 +742,11 @@ def test_recording_calls(port):
response['response'].should.have.key("status").being.equal(200)
response['response'].should.have.key("body").being.an(text_type)
response['response'].should.have.key("headers").being.a(dict)
+ # older urllib3 had a bug where header keys were lower-cased:
+ # https://github.com/shazow/urllib3/issues/236
+ # cope with that
+ if 'server' in response['response']["headers"]:
+ response['response']["headers"]["Server"] = response['response']["headers"].pop("server")
response['response']["headers"].should.have.key("Server").being.equal("TornadoServer/" + tornado_version)
# And When I playback the previously recorded calls
--
2.11.0

View File

@ -0,0 +1,76 @@
From c255165a86bef7f894c3a446b41d0b3379c5c2be Mon Sep 17 00:00:00 2001
From: Eugene Morozov <jmv@emorozov.net>
Date: Mon, 13 Sep 2021 20:30:00 +0300
Subject: [PATCH] Fixes #425. (#436)
by @emorozov
---
httpretty/core.py | 6 +++---
tests/functional/test_requests.py | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/httpretty/core.py b/httpretty/core.py
index 19715e0..6968645 100644
--- a/httpretty/core.py
+++ b/httpretty/core.py
@@ -796,7 +796,7 @@ class fakesock(object):
else:
self._entry.request.body += body
- httpretty.historify_request(headers, body, sock=self)
+ httpretty.historify_request(headers, body, sock=self, append=False)
return
if path[:2] == '//':
@@ -1602,7 +1602,7 @@ class httpretty(HttpBaseClass):
__internals__.cleanup_sockets()
@classmethod
- def historify_request(cls, headers, body='', sock=None):
+ def historify_request(cls, headers, body='', sock=None, append=True):
"""appends request to a list for later retrieval
.. testcode::
@@ -1618,7 +1618,7 @@ class httpretty(HttpBaseClass):
request = HTTPrettyRequest(headers, body, sock=sock)
cls.last_request = request
- if request not in cls.latest_requests:
+ if append or not cls.latest_requests:
cls.latest_requests.append(request)
else:
cls.latest_requests[-1] = request
diff --git a/tests/functional/test_requests.py b/tests/functional/test_requests.py
index 752428b..55aa109 100644
--- a/tests/functional/test_requests.py
+++ b/tests/functional/test_requests.py
@@ -407,7 +407,7 @@ def test_multiline():
expect(HTTPretty.last_request.body).to.equal(data)
expect(HTTPretty.last_request.headers['content-length']).to.equal('37')
expect(HTTPretty.last_request.headers['content-type']).to.equal('application/x-www-form-urlencoded; charset=utf-8')
- expect(len(HTTPretty.latest_requests)).to.equal(2)
+ expect(len(HTTPretty.latest_requests)).to.equal(1)
@httprettified
@@ -431,7 +431,7 @@ def test_octet_stream():
expect(HTTPretty.last_request.body).to.equal(data)
expect(HTTPretty.last_request.headers['content-length']).to.equal('4')
expect(HTTPretty.last_request.headers['content-type']).to.equal('application/octet-stream')
- expect(len(HTTPretty.latest_requests)).to.equal(2)
+ expect(len(HTTPretty.latest_requests)).to.equal(1)
@httprettified
@@ -452,7 +452,7 @@ def test_multipart():
expect(HTTPretty.last_request.body).to.equal(data)
expect(HTTPretty.last_request.headers['content-length']).to.equal('495')
expect(HTTPretty.last_request.headers['content-type']).to.equal('multipart/form-data; boundary=xXXxXXyYYzzz')
- expect(len(HTTPretty.latest_requests)).to.equal(2)
+ expect(len(HTTPretty.latest_requests)).to.equal(1)
@httprettified
--
2.39.0.windows.2

View File

@ -0,0 +1,37 @@
From 20c02cdb77bd6c9827625a68c1a1af339c50b819 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lu=C3=ADs=20Soares?= <lsoares@gmail.com>
Date: Thu, 8 Sep 2022 10:12:46 +0100
Subject: [PATCH] add support for 421: "Misdirected Request"
---
httpretty/http.py | 1 +
tests/unit/test_httpretty.py | 1 +
2 files changed, 2 insertions(+)
diff --git a/httpretty/http.py b/httpretty/http.py
index 87ceca9..0f75935 100644
--- a/httpretty/http.py
+++ b/httpretty/http.py
@@ -73,6 +73,7 @@ STATUSES = {
417: "Expectation Failed",
418: "I'm a teapot",
420: "Enhance Your Calm",
+ 421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
diff --git a/tests/unit/test_httpretty.py b/tests/unit/test_httpretty.py
index 017b290..89b2abf 100644
--- a/tests/unit/test_httpretty.py
+++ b/tests/unit/test_httpretty.py
@@ -117,6 +117,7 @@ def test_status_codes():
417: "Expectation Failed",
418: "I'm a teapot",
420: "Enhance Your Calm",
+ 421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
--
2.39.0.windows.2

Binary file not shown.

BIN
httpretty-1.1.4.tar.gz Normal file

Binary file not shown.

View File

@ -1,64 +0,0 @@
--- HTTPretty/tests/unit/test_core.py 2017-01-06 15:04:06.030520764 -0800
+++ HTTPretty/tests/unit/test_core.py.new 2017-01-06 15:37:17.932752818 -0800
@@ -192,31 +192,37 @@
@patch('httpretty.core.datetime')
def test_fakesock_socket_getpeercert(dt):
("fakesock.socket#getpeercert should return a hardcoded fake certificate")
- # Background:
- dt.now.return_value = datetime(2013, 10, 4, 4, 20, 0)
+ # Don't bother with an actual remote roundtrip
+ httpretty.allow_net_connect = False
- # Given a fake socket instance
- socket = fakesock.socket()
-
- # And that it's bound to some host and port
- socket.connect(('somewhere.com', 80))
-
- # When I retrieve the peer certificate
- certificate = socket.getpeercert()
-
- # Then it should return a hardcoded value
- certificate.should.equal({
- u'notAfter': 'Sep 29 04:20:00 GMT',
- u'subject': (
- ((u'organizationName', u'*.somewhere.com'),),
- ((u'organizationalUnitName', u'Domain Control Validated'),),
- ((u'commonName', u'*.somewhere.com'),)),
- u'subjectAltName': (
- (u'DNS', u'*.somewhere.com'),
- (u'DNS', u'somewhere.com'),
- (u'DNS', u'*')
- )
- })
+ try:
+ # Background:
+ dt.now.return_value = datetime(2013, 10, 4, 4, 20, 0)
+
+ # Given a fake socket instance
+ socket = fakesock.socket()
+
+ # And that it's bound to some host and port
+ socket.connect(('somewhere.com', 80))
+
+ # When I retrieve the peer certificate
+ certificate = socket.getpeercert()
+
+ # Then it should return a hardcoded value
+ certificate.should.equal({
+ u'notAfter': 'Sep 29 04:20:00 GMT',
+ u'subject': (
+ ((u'organizationName', u'*.somewhere.com'),),
+ ((u'organizationalUnitName', u'Domain Control Validated'),),
+ ((u'commonName', u'*.somewhere.com'),)),
+ u'subjectAltName': (
+ (u'DNS', u'*.somewhere.com'),
+ (u'DNS', u'somewhere.com'),
+ (u'DNS', u'*')
+ )
+ })
+ finally:
+ httpretty.allow_net_connect = True
def test_fakesock_socket_ssl():

View File

@ -1,35 +1,24 @@
Name: python-httpretty
Version: 0.9.5
Release: 4
Version: 1.1.4
Release: 3
Summary: HTTP Client mocking tool for Python
License: MIT
URL: https://pypi.org/project/httpretty/
Source0: https://files.pythonhosted.org/packages/source/h/httpretty/httpretty-%{version}.tar.gz
Patch0001: python-httpretty-fakesock_getpeercert_noconnect.patch
Patch0002: 0001-Handle-bugs-in-older-urllib3-versions-in-one-of-the-.patch
Patch0003: 0001-Call-reset-from-setUp-and-tearDown-in-addition-to-en.patch
BuildRequires: python2-devel python2-setuptools python2-httplib2 python2-mock python2-nose
BuildRequires: python2-requests python2-sure python2-urllib3 python2-tornado python-unittest2
# https://github.com/gabrielfalcao/HTTPretty/issues/457
Patch0:test_handle_slashes.patch
Patch0001: Duplicate-requests-in-latest_requests-if-there-are-chunks.patch
Patch0002: add-support-for-Misdirected-Request.patch
BuildArch: noarch
%description
HTTP Client mocking tool for Python.Provides a full fake TCP socket module.
%package -n python2-httpretty
Summary: HTTP Client mocking tool for Python2
Requires: python2-six
%{?python_provide:%python_provide python2-httpretty}
%description -n python2-httpretty
HTTP Client mocking tool for Python2.Provides a full fake TCP socket module.
%package -n python3-httpretty
Summary: HTTP Client mocking tool for Python3
BuildRequires: python3-devel python3-setuptools python3-httplib2 python3-mock
BuildRequires: python3-nose python3-requests python3-sure python3-urllib3 python3-tornado
BuildRequires: python3-devel python3-setuptools python3-httplib2 python3-mock python3-freezegun
BuildRequires: python3-requests python3-sure python3-urllib3 python3-tornado python3-nose2
Requires: python3-six
%{?python_provide:%python_provide python3-httpretty}
@ -42,29 +31,39 @@ sed -i 's/^with-randomly = 1$//' setup.cfg
sed -i 's/^rednose = 1$//' setup.cfg
%build
LANG=en_US.UTF-8 %py2_build
LANG=en_US.UTF-8 %py3_build
%install
LANG=en_US.UTF-8 %py2_install
LANG=en_US.UTF-8 %py3_install
%check
LANG=en_US.UTF-8 %{__python2} -m nose -v
LANG=en_US.UTF-8 %{__python3} -m nose -v
%files -n python2-httpretty
%doc README.rst
%license COPYING
%{python2_sitelib}/httpretty
%{python2_sitelib}/httpretty-%{version}-py2.?.egg-info
export EVENTLET_NO_GREENDNS=yes
sed -Ei 's/(test_https?_passthrough)/_\1/' tests/functional/test_passthrough.py
sed -Ei 's/(test_streaming_responses)/_\1/' tests/functional/test_requests.py
sed -Ei 's/(test_fakesock_socket_sendall_with_body_data_with_chunked_entry)/_\1/' tests/unit/test_core.py
LANG=en_US.UTF-8 %{__python3} -m nose2 -v
%files -n python3-httpretty
%doc README.rst
%license COPYING
%{python3_sitelib}/httpretty
%{python3_sitelib}/httpretty-%{version}-py3.?.egg-info
%{python3_sitelib}/httpretty-%{version}-py%{python3_version}.egg-info
%changelog
* Mon Jan 9 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 1.1.4-3
- add support for Misdirected Request
* Sat Jan 7 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 1.1.4-2
- Fix Duplicate requests in latest_requests if there are chunks
* Thu Oct 27 2022 Ge Wang <wangge20@h-partners.com> - 1.1.4-1
- Update to version 1.1.4
* Mon Jan 10 2022 baizhonggui <baizhonggui@huawei.com> - 0.9.5-6
- Replace nose from nose2 dependence.
* Wed Aug 5 2020 zhangtao <zhangtao221@huawei.com> - 0.9.5-5
- Remove python2
* Sat Nov 23 2019 zhouyihang <zhouyihang1@huawei.com> - 0.9.5-4
- Package init

View File

@ -0,0 +1,9 @@
diff -Nur a/tests/functional/test_requests.py b/tests/functional/test_requests.py
--- a/tests/functional/test_requests.py 2021-05-14 09:02:06.000000000 +0800
+++ b/tests/functional/test_requests.py 2022-08-27 15:44:21.935602830 +0800
@@ -946,4 +946,4 @@
response = requests.get('http://example.com//foo')
expect(response.text).to.equal('Find the best foo')
expect(HTTPretty.last_request.method).to.equal('GET')
- expect(HTTPretty.last_request.path).to.equal('//foo')
+ expect(HTTPretty.last_request.path).to.equal('/foo')