jenkins-bot submitted this change.

View Change

Approvals: Matěj Suchánek: Looks good to me, approved jenkins-bot: Verified
[bugfix] _paraminfo and _siteinfo gives different languages results

The results of _paraminfo and _siteinfo are no longer the same with
mw 1.36.0-wmf5. test_language_lists is no longer required.

- use _paraminfo for DataSite.search_entities intead of _siteinfo
to get languages codes.
- remove TestDataSiteSearchEntities.test_language_lists

Bug: T261038
Change-Id: Ib827314d7340d440e08a532d7ae861267b1b114d
---
M pywikibot/site/__init__.py
M tests/site_tests.py
2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/pywikibot/site/__init__.py b/pywikibot/site/__init__.py
index 1954af5..3c29120 100644
--- a/pywikibot/site/__init__.py
+++ b/pywikibot/site/__init__.py
@@ -8250,21 +8250,21 @@
return pywikibot.ItemPage(self, result['entity']['id'])

@deprecated_args(limit='total')
- def search_entities(self, search, language, total=None, **kwargs):
+ def search_entities(self, search: str, language: str, total=None,
+ **kwargs):
"""
Search for pages or properties that contain the given text.

@param search: Text to find.
- @type search: str
@param language: Language to search in.
- @type language: str
@param total: Maximum number of pages to retrieve in total, or None in
case of no limit.
@type total: int or None
@return: 'search' list from API output.
@rtype: api.APIGenerator
"""
- lang_codes = [lang['code'] for lang in self._siteinfo.get('languages')]
+ lang_codes = self._paraminfo.parameter('wbsearchentities',
+ 'language')['type']
if language not in lang_codes:
raise ValueError('Data site used does not support provided '
'language.')
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 1467d84..586a8be 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -3413,15 +3413,6 @@
pages_continue = datasite.search_entities('Rembrandt', 'en', **kwargs)
self.assertNotEqual(list(pages), list(pages_continue))

- def test_language_lists(self):
- """Test that languages returned by paraminfo and MW are the same."""
- site = self.get_site()
- lang_codes = site._paraminfo.parameter('wbsearchentities',
- 'language')['type']
- lang_codes2 = [lang['code']
- for lang in site._siteinfo.get('languages')]
- self.assertEqual(lang_codes, lang_codes2)
-
def test_invalid_language(self):
"""Test behavior of search_entities with invalid language provided."""
datasite = self.get_repo()

To view, visit change 621878. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ib827314d7340d440e08a532d7ae861267b1b114d
Gerrit-Change-Number: 621878
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: Dvorapa <dvorapa@seznam.cz>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97@gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged