jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/913564 )
Change subject: [tests] Skip HttpbinTestCase tests when a ServerError occurs ......................................................................
[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(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
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'})
pywikibot-commits@lists.wikimedia.org