jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1197209?usp=email )

Change subject: cleanup: deprecate dysfunctional Site.alllinks method
......................................................................

cleanup: deprecate dysfunctional Site.alllinks method

Bug: T359427
Bug: T407708
Change-Id: Icdae4838a64ccb65b2e9702c930d3a69f414fda4
---
M pywikibot/site/_generators.py
M tests/api_tests.py
M tests/site_generators_tests.py
3 files changed, 12 insertions(+), 64 deletions(-)

Approvals:
  jenkins-bot: Verified
  Xqt: Looks good to me, approved




diff --git a/pywikibot/site/_generators.py b/pywikibot/site/_generators.py
index 8bdc721..4da3dcc 100644
--- a/pywikibot/site/_generators.py
+++ b/pywikibot/site/_generators.py
@@ -26,7 +26,12 @@
 )
 from pywikibot.site._decorators import need_right
 from pywikibot.site._namespace import NamespaceArgType
-from pywikibot.tools import deprecate_arg, deprecated_signature, is_ip_address
+from pywikibot.tools import (
+    deprecate_arg,
+    deprecated,
+    deprecated_signature,
+    is_ip_address,
+)
 from pywikibot.tools.itertools import filter_unique

 
@@ -1007,6 +1012,7 @@

         return apgen

+    @deprecated(since='10.7.0')
     def alllinks(
         self,
         start: str = '',
@@ -1044,6 +1050,10 @@
            The minimum read timeout value should be 60 seconds in that
            case.

+        .. deprecated:: 10.7
+           This method is dysfunctional and should no longer be used. It
+           will probably be removed in Pywikibot 11.
+
         .. seealso::
            - :api:`Alllinks`
            - :meth:`pagebacklinks`
diff --git a/tests/api_tests.py b/tests/api_tests.py
index c1bbaba..eddd212 100755
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -604,11 +604,6 @@
             'limit': {'max': 10},
             'namespace': {'multi': True}
         }
-        self.site._paraminfo['query+alllinks'] = {
-            'prefix': 'al',
-            'limit': {'max': 10},
-            'namespace': {'default': 0}
-        }
         self.site._paraminfo['query+links'] = {
             'prefix': 'pl',
         }
@@ -634,22 +629,13 @@

     def test_namespace_none(self) -> None:
         """Test ListGenerator set_namespace with None."""
-        self.gen = api.ListGenerator(listaction='alllinks', site=self.site)
+        self.gen = api.ListGenerator(listaction='allpages', site=self.site)
         with self.assertRaisesRegex(
             TypeError,
             (r'int\(\) argument must be a string, a bytes-like object '
              r"or (?:a real number|a number), not 'NoneType'")):
             self.gen.set_namespace(None)

-    def test_namespace_non_multi(self) -> None:
-        """Test ListGenerator set_namespace when non multi."""
-        self.gen = api.ListGenerator(listaction='alllinks', site=self.site)
-        with self.assertRaisesRegex(
-                TypeError,
-                'alllinks module does not support multiple namespaces'):
-            self.gen.set_namespace([0, 1])
-        self.assertIsNone(self.gen.set_namespace(0))
-
     def test_namespace_multi(self) -> None:
         """Test ListGenerator set_namespace when multi."""
         self.gen = api.ListGenerator(listaction='allpages', site=self.site)
diff --git a/tests/site_generators_tests.py b/tests/site_generators_tests.py
index 9fc4172..950ee1e 100755
--- a/tests/site_generators_tests.py
+++ b/tests/site_generators_tests.py
@@ -331,54 +331,6 @@
             self.assertIn('edit', page._protection)
             self.assertIn('sysop', page._protection['edit'])

-    def test_all_links(self) -> None:
-        """Test the site.alllinks() method."""
-        mysite = self.get_site()
-        fwd = list(mysite.alllinks(total=10))
-        uniq = list(mysite.alllinks(total=10, unique=True))
-
-        with self.subTest(msg='Test that unique links are in all links'):
-            self.assertLessEqual(len(fwd), 10)
-            self.assertLessEqual(len(uniq), len(fwd))
-            for link in fwd:
-                self.assertIsInstance(link, pywikibot.Page)
-                self.assertIn(link, uniq)
-
-        with self.subTest(msg='Test with start parameter'):
-            for page in mysite.alllinks(start='Link', total=5):
-                self.assertIsInstance(page, pywikibot.Page)
-                self.assertEqual(page.namespace(), 0)
-                self.assertGreaterEqual(page.title(), 'Link')
-
-        with self.subTest(msg='Test with prefix parameter'):
-            for page in mysite.alllinks(prefix='Fix', total=5):
-                self.assertIsInstance(page, pywikibot.Page)
-                self.assertEqual(page.namespace(), 0)
-                self.assertStartsWith(page.title(), 'Fix')
-
-        # increase timeout due to T359427/T359425
-        # ~ 47s are required on wikidata
-        config_timeout = pywikibot.config.socket_timeout
-        pywikibot.config.socket_timeout = (config_timeout[0], 60)
-        with self.subTest(msg='Test namespace parameter'):
-            for page in mysite.alllinks(namespace=1, total=5):
-                self.assertIsInstance(page, pywikibot.Page)
-                self.assertEqual(page.namespace(), 1)
-        pywikibot.config.socket_timeout = config_timeout
-
-        with self.subTest(msg='Test with fromids parameter'):
-            for page in mysite.alllinks(start='From', namespace=4,
-                                        fromids=True, total=5):
-                self.assertIsInstance(page, pywikibot.Page)
-                self.assertGreaterEqual(page.title(with_ns=False), 'From')
-                self.assertHasAttr(page, '_fromid')
-
-        with self.subTest(
-                msg='Test that Error is raised with unique and fromids'):
-            errgen = mysite.alllinks(unique=True, fromids=True)
-            with self.assertRaises(Error):
-                next(errgen)
-
     def test_all_categories(self) -> None:
         """Test the site.allcategories() method."""
         mysite = self.get_site()

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1197209?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: Icdae4838a64ccb65b2e9702c930d3a69f414fda4
Gerrit-Change-Number: 1197209
Gerrit-PatchSet: 4
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