jenkins-bot submitted this change.

View Change


Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[tests] Skip HttpbinTestCase tests when a ServerError occurs

add a new method fetch() to aspects.HttpbinTestCase which delegates
request to http.fetch() but skips the test on ServerErrors.

Bug: T335622
Change-Id: Id8199c483c955098053ffe0d04d8d342fa97a489
---
M tests/aspects.py
M tests/http_tests.py
2 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/tests/aspects.py b/tests/aspects.py
index d3ebde0..4515cb2 100644
--- a/tests/aspects.py
+++ b/tests/aspects.py
@@ -49,6 +49,7 @@
DrySite,
WarningSourceSkipContextManager,
execute_pwb,
+ skipping,
)


@@ -1569,3 +1570,8 @@
def get_httpbin_hostname(self):
"""Return httpbin hostname."""
return 'httpbin.org'
+
+ def fetch(self, *args, **kwargs):
+ """Delegate http request to http.fetch but skip on ServerError."""
+ with skipping(ServerError):
+ return http.fetch(*args, **kwargs)
diff --git a/tests/http_tests.py b/tests/http_tests.py
index a21b7bc..b84eaa5 100755
--- a/tests/http_tests.py
+++ b/tests/http_tests.py
@@ -258,21 +258,21 @@

def test_existing_headers(self):
"""Test fake_user_agent with existing headers."""
- r = http.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.get_httpbin_url('/status/200'),
headers={'user-agent': 'EXISTING'})
self.assertEqual(r.request.headers['user-agent'], 'EXISTING')

def test_argument_values_changes(self):
"""Test fake_user_agent with argument value changes."""
- r = http.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent=True)
self.assertNotEqual(r.request.headers['user-agent'], http.user_agent())

- r = http.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent=False)
self.assertEqual(r.request.headers['user-agent'], http.user_agent())

- r = http.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent='ARBITRARY')
self.assertEqual(r.request.headers['user-agent'], 'ARBITRARY')

@@ -280,21 +280,21 @@
"""Test fake_user_agent with empty value."""
with self.assertRaisesRegex(ValueError,
'Invalid parameter: use_fake_user_agent'):
- http.fetch(self.get_httpbin_url('/status/200'),
+ self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent='')

def test_parameter_set_to_none(self):
"""Test fake_user_agent with parameter wrongly set to None."""
with self.assertRaisesRegex(ValueError,
'Invalid parameter: use_fake_user_agent'):
- http.fetch(self.get_httpbin_url('/status/200'),
+ self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent=None)

def test_overridden_domains(self):
"""Test fake_user_agent with manually overridden domains."""
config.fake_user_agent_exceptions = {
self.get_httpbin_hostname(): 'OVERRIDDEN'}
- r = http.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.get_httpbin_url('/status/200'),
use_fake_user_agent=False)
self.assertEqual(r.request.headers['user-agent'], 'OVERRIDDEN')

@@ -564,10 +564,10 @@
'X-Amzn-Trace-Id', 'X-B3-Parentspanid', 'X-B3-Spanid',
'X-B3-Traceid', 'X-Forwarded-Client-Cert',
)
- r_data_request = http.fetch(self.get_httpbin_url('/post'),
+ r_data_request = self.fetch(self.get_httpbin_url('/post'),
method='POST',
data={'fish&chips': 'delicious'})
- r_body_request = http.fetch(self.get_httpbin_url('/post'),
+ r_body_request = self.fetch(self.get_httpbin_url('/post'),
method='POST',
data={'fish&chips': 'delicious'})


To view, visit change 913564. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Id8199c483c955098053ffe0d04d8d342fa97a489
Gerrit-Change-Number: 913564
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged