jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1314631?usp=email )
Change subject: tests: improvements for HttpbinTestCase
......................................................................
tests: improvements for HttpbinTestCase
- use staticmethod with fetch method because class or instance is not used
- remove get_httpbin_hostname because hostname class attribure can be used
- remove get_httpbin_url method and replace it with httpbin class property
- update method usages
Change-Id: I5a792863f017a174c3f73e339daf6af6b57af364
---
M tests/aspects.py
M tests/http_tests.py
2 files changed, 20 insertions(+), 27 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/aspects.py b/tests/aspects.py
index f2945f1..3b4efea 100644
--- a/tests/aspects.py
+++ b/tests/aspects.py
@@ -39,6 +39,7 @@
from pywikibot.tools import ( # noqa: F401 (used by eval())
PYTHON_VERSION,
MediaWikiVersion,
+ classproperty,
suppress_warnings,
)
from tests import (
@@ -1734,15 +1735,13 @@
hostname = 'httpbin.org'
- def get_httpbin_url(self, path=''):
- """Return url of httpbin."""
- return 'http://httpbin.org' + path
+ @classproperty
+ def httpbin(cls) -> str:
+ """Return URL of httpbin."""
+ return f'http://{cls.hostname}'
- def get_httpbin_hostname(self) -> str:
- """Return httpbin hostname."""
- return 'httpbin.org'
-
- def fetch(self, *args, **kwargs):
+ @staticmethod
+ def fetch(*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 860e183..3185b8a 100755
--- a/tests/http_tests.py
+++ b/tests/http_tests.py
@@ -132,7 +132,7 @@
Server504Error,
r'Server ([^\:]+|[^\:]+:[0-9]+)'
r' timed out'):
- http.fetch(self.get_httpbin_url('/status/504'))
+ http.fetch(self.httpbin + '/status/504')
def test_server_not_found(self) -> None:
"""Test server not found exception."""
@@ -160,8 +160,8 @@
HTTPStatus.MOVED_PERMANENTLY.value)
self.assertIn('//en.wikipedia.org/wiki/Main_Page', r.url)
- r = http.fetch(
- self.get_httpbin_url('/redirect-to?url=https://www.wikidata.org'))
+ r = http.fetch(self.httpbin
+ + 'redirect-to?url=https://www.wikidata.org')
self.assertIsNotEmpty(r.history)
self.assertEqual(r.history[0].status_code, HTTPStatus.FOUND.value)
self.assertEqual(r.history[-1].status_code,
@@ -251,44 +251,38 @@
def test_existing_headers(self) -> None:
"""Test fake_user_agent with existing headers."""
- r = self.fetch(self.get_httpbin_url('/status/200'),
+ r = self.fetch(self.httpbin + '/status/200',
headers={'user-agent': 'EXISTING'})
self.assertEqual(r.request.headers['user-agent'], 'EXISTING')
def test_argument_values_changes(self) -> None:
"""Test fake_user_agent with argument value changes."""
- r = self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent=True)
+ url = self.httpbin + '/status/200'
+ r = self.fetch(url, use_fake_user_agent=True)
self.assertNotEqual(r.request.headers['user-agent'], http.user_agent())
- r = self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent=False)
+ r = self.fetch(url, use_fake_user_agent=False)
self.assertEqual(r.request.headers['user-agent'], http.user_agent())
- r = self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent='ARBITRARY')
+ r = self.fetch(url, use_fake_user_agent='ARBITRARY')
self.assertEqual(r.request.headers['user-agent'], 'ARBITRARY')
def test_empty_value(self) -> None:
"""Test fake_user_agent with empty value."""
with self.assertRaisesRegex(ValueError,
'Invalid parameter: use_fake_user_agent'):
- self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent='')
+ self.fetch(self.httpbin + '/status/200', use_fake_user_agent='')
def test_parameter_set_to_none(self) -> None:
"""Test fake_user_agent with parameter wrongly set to None."""
with self.assertRaisesRegex(ValueError,
'Invalid parameter: use_fake_user_agent'):
- self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent=None)
+ self.fetch(self.httpbin + '/status/200', use_fake_user_agent=None)
def test_overridden_domains(self) -> None:
"""Test fake_user_agent with manually overridden domains."""
- config.fake_user_agent_exceptions = {
- self.get_httpbin_hostname(): 'OVERRIDDEN'}
- r = self.fetch(self.get_httpbin_url('/status/200'),
- use_fake_user_agent=False)
+ config.fake_user_agent_exceptions = {self.hostname: 'OVERRIDDEN'}
+ r = self.fetch(self.httpbin + '/status/200', use_fake_user_agent=False)
self.assertEqual(r.request.headers['user-agent'], 'OVERRIDDEN')
@@ -496,7 +490,7 @@
def setUp(self) -> None:
"""Set up tests."""
super().setUp()
- self.url = self.get_httpbin_url('/get')
+ self.url = self.httpbin + '/get'
def test_no_params(self) -> None:
"""Test fetch method with no parameters."""
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1314631?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I5a792863f017a174c3f73e339daf6af6b57af364
Gerrit-Change-Number: 1314631
Gerrit-PatchSet: 9
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]