summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python3-betamax/fix-failing-ptest.patch
blob: 5671033526dfddc99b2f6af60d87cc41360b838b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
From 0f5d51b1c7e3b9eb5c083621a00811a872323046 Mon Sep 17 00:00:00 2001
From: Jaremy Hatler <hatler.jaremy@gmail.com>
Date: Fri, 22 Dec 2023 22:53:53 -0500
Subject: [PATCH] fix: clear X-Amzn-Trace-Id in httbin.org responses (#2)

The httbin.org service returns a X-Amzn-Trace-Id header in its
responses, which is different for each request. This causes the
tests to fail. This clears the header before comparing responses.

Refs: #184, #190
Signed-off-by: Jaremy Hatler <hatler.jaremy@gmail.com>

Upstream-Status: Backport [https://github.com/jhatler/betamax/commit/0f5d51b1c7e3b9eb5c083621a00811a872323046]
---
 tests/integration/test_record_modes.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/integration/test_record_modes.py b/tests/integration/test_record_modes.py
index 58c8846..988b851 100644
--- a/tests/integration/test_record_modes.py
+++ b/tests/integration/test_record_modes.py
@@ -1,3 +1,5 @@
+import re
+
 from betamax import Betamax, BetamaxError
 
 from tests.integration.helper import IntegrationHelper
@@ -39,8 +41,15 @@ def test_replays_response_from_cassette(self):
             # this test to succeed.
             # NOTE(hroncok): httpbin.org added X-Processed-Time header that
             # can possibly differ (and often does)
+            r0_content = r0.content.decode(encoding='utf-8', errors='strict')
+            r1_content = r1.content.decode(encoding='utf-8', errors='strict')
+            r0_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r0_content)
+            r1_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r1_content)
+            # NOTE(jhatler): httpbin.org added "X-Amzn-Trace-Id" to their
+            # response, which is a unique ID that will differ between requests.
+            # We remove it from the response body before comparing.
             assert r0_headers == r1_headers
-            assert r0.content == r1.content
+            assert r0_content == r1_content
 
 
 class TestRecordNone(IntegrationHelper):