Skip to content

Commit 12cf689

Browse files
committed
tests: fix assert message comparison
In some cases assert messages are prefixed by 2 spaces and we don't have to be strict here. The key is to compare the contents pytest-httpserver provides, so we split the message by lines and also strip them. Fixes #345
1 parent 6b660e7 commit 12cf689

File tree

2 files changed

+36
-23
lines changed

2 files changed

+36
-23
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
Fix pytest-httpserver's own tests related to log querying. No functional
5+
changes in pytest-httpserver code itself. `#345 <https://github.com/csernazs/pytest-httpserver/issues/345>`_

tests/test_log_querying.py

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,37 +38,45 @@ def test_verify_assert_msg(httpserver: HTTPServer):
3838
headers = {"User-Agent": "requests", "Accept-Encoding": "gzip, deflate"}
3939
assert requests.get(httpserver.url_for("/foo"), headers=headers).status_code == 404
4040

41+
expected_lines = [
42+
"Matching request found 0 times but expected 1 times.",
43+
"Expected request: <RequestMatcher uri='/foo' method='POST' query_string=None headers={} data"
44+
"=None json={'foo': 'bar'}>",
45+
"Found 1 similar request(s):",
46+
"--- Similar Request Start",
47+
"Path: /foo",
48+
"Method: GET",
49+
"Body: b''",
50+
f"Headers: Host: localhost:{httpserver.port}",
51+
"User-Agent: requests",
52+
"Accept-Encoding: gzip, deflate",
53+
"Accept: */*",
54+
"Connection: keep-alive",
55+
"",
56+
"",
57+
"Query String: ''",
58+
"--- Similar Request End",
59+
]
60+
4161
with pytest.raises(AssertionError) as err:
4262
httpserver.assert_request_made(RequestMatcher("/foo", json={"foo": "bar"}, method="POST"))
4363

44-
expected_message = f"""Matching request found 0 times but expected 1 times.
45-
Expected request: <RequestMatcher uri='/foo' method='POST' query_string=None headers={{}} data=None json={{'foo': 'bar'}}>
46-
Found 1 similar request(s):
47-
--- Similar Request Start
48-
Path: /foo
49-
Method: GET
50-
Body: b''
51-
Headers: Host: localhost:{httpserver.port}\r
52-
User-Agent: requests\r
53-
Accept-Encoding: gzip, deflate\r
54-
Accept: */*\r
55-
Connection: keep-alive\r
56-
\r
57-
58-
Query String: ''
59-
--- Similar Request End
60-
""" # noqa: E501
61-
assert str(err.value) == expected_message
64+
actual_lines = [x.strip() for x in str(err.value).splitlines()][: len(expected_lines)]
65+
assert actual_lines == expected_lines
6266

6367

6468
def test_verify_assert_msg_no_similar_requests(httpserver: HTTPServer):
6569
httpserver.expect_request("/foo", json={"foo": "bar"}, method="POST").respond_with_data("OK")
6670

71+
expected_lines = [
72+
"Matching request found 0 times but expected 1 times.",
73+
"Expected request: <RequestMatcher uri='/foo' method='POST' query_string=None headers={} data"
74+
"=None json={'foo': 'bar'}>",
75+
"No similar requests found.",
76+
]
77+
6778
with pytest.raises(AssertionError) as err:
6879
httpserver.assert_request_made(RequestMatcher("/foo", json={"foo": "bar"}, method="POST"))
6980

70-
expected_message = """Matching request found 0 times but expected 1 times.
71-
Expected request: <RequestMatcher uri='/foo' method='POST' query_string=None headers={} data=None json={'foo': 'bar'}>
72-
No similar requests found.
73-
"""
74-
assert str(err.value) == expected_message
81+
actual_lines = [x.strip() for x in str(err.value).splitlines()][: len(expected_lines)]
82+
assert actual_lines == expected_lines

0 commit comments

Comments
 (0)