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]