mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-14 05:49:57 +00:00
python3-betamax: fix ptests
1. Some tests require internet access. Set a DNS for that, if it is not available at the start of the test. 2. Added a backported patch that fixes some failing tests, due to a variable header value contained in a response. (fix-failing-ptest.patch) 3. Added a backported patch that avoids calling pytest fixtures directly. If not applied, tests calling them are marked as failing by pytest. (fix-direct-calls-to-test-fixtures.patch) Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
|||||||
|
From 165cc321f2b9839418269e9493b03eb2e43f7ddf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jiri Kuncar <jiri.kuncar@gmail.com>
|
||||||
|
Date: Mon, 9 Sep 2019 12:23:18 +0200
|
||||||
|
Subject: [PATCH] tests: fix direct calls to PyTest fixtures
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/latest/deprecations.html#calling-fixtures-directly
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/betamaxpy/betamax/commit/165cc321f2b9839418269e9493b03eb2e43f7ddf]
|
||||||
|
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||||
|
---
|
||||||
|
tests/unit/test_fixtures.py | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/unit/test_fixtures.py b/tests/unit/test_fixtures.py
|
||||||
|
index 387d9ce..41f33eb 100644
|
||||||
|
--- a/tests/unit/test_fixtures.py
|
||||||
|
+++ b/tests/unit/test_fixtures.py
|
||||||
|
@@ -27,9 +27,9 @@ def test_adds_stop_as_a_finalizer(self):
|
||||||
|
# Mock a pytest request object
|
||||||
|
request = mock.MagicMock()
|
||||||
|
request.cls = request.module = None
|
||||||
|
- request.function.__name__ = 'test'
|
||||||
|
+ request.node.name = request.function.__name__ = 'test'
|
||||||
|
|
||||||
|
- pytest_fixture.betamax_recorder(request)
|
||||||
|
+ pytest_fixture._betamax_recorder(request)
|
||||||
|
assert request.addfinalizer.called is True
|
||||||
|
request.addfinalizer.assert_called_once_with(self.mocked_betamax.stop)
|
||||||
|
|
||||||
|
@@ -37,9 +37,9 @@ def test_auto_starts_the_recorder(self):
|
||||||
|
# Mock a pytest request object
|
||||||
|
request = mock.MagicMock()
|
||||||
|
request.cls = request.module = None
|
||||||
|
- request.function.__name__ = 'test'
|
||||||
|
+ request.node.name = request.function.__name__ = 'test'
|
||||||
|
|
||||||
|
- pytest_fixture.betamax_recorder(request)
|
||||||
|
+ pytest_fixture._betamax_recorder(request)
|
||||||
|
self.mocked_betamax.start.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,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):
|
||||||
@@ -1,3 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ! nslookup httpbin.org >/dev/null 2>&1 ; then
|
||||||
|
trap 'mv /etc/resolv.conf.bak /etc/resolv.conf' INT EXIT
|
||||||
|
mv /etc/resolv.conf /etc/resolv.conf.bak
|
||||||
|
echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
||||||
|
fi
|
||||||
|
|
||||||
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
|
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=61c15f0c146c5fb1a8ce8ba2f310d73c"
|
|||||||
|
|
||||||
SRC_URI += " \
|
SRC_URI += " \
|
||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
|
file://fix-failing-ptest.patch \
|
||||||
|
file://fix-direct-calls-to-test-fixtures.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "b8182d43a200fc126a3bf7555626f964"
|
SRC_URI[md5sum] = "b8182d43a200fc126a3bf7555626f964"
|
||||||
|
|||||||
Reference in New Issue
Block a user