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]

Reply via email to