jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[tests] Suppress all warnings

This drops all warnings from our test output. Remaining 'WARNING' lines come
from our logger rather than warn() clauses.

Bug: T225594
Bug: T234147
Change-Id: I5f827e684c426f64a58ebb76bf55231e82d1a8ea
---
M tests/__init__.py
M tests/api_tests.py
M tests/aspects.py
M tests/interwikimap_tests.py
M tests/page_tests.py
M tests/pagegenerators_tests.py
M tests/reflinks_tests.py
M tests/replacebot_tests.py
M tests/site_tests.py
M tests/wikibase_tests.py
10 files changed, 98 insertions(+), 48 deletions(-)

diff --git a/tests/__init__.py b/tests/__init__.py
index 219b263..38c49a0 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -36,6 +36,14 @@

_root_dir = os.path.split(os.path.split(__file__)[0])[0]

+# common warn() clauses...
+#
+# WARN_SITE_CODE is from T234147
+# WARN_SITE_OBJ is from T225594
+
+WARN_SITE_CODE = r'^Site .*:.* instantiated using different code *'
+WARN_SITE_OBJ = 'Site objects have been created before arguments were handled'
+

def join_root_path(*names):
"""Return a path relative to the root directory."""
diff --git a/tests/api_tests.py b/tests/api_tests.py
index c2cf635..9811ef1 100644
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -694,6 +694,9 @@
self.gen.set_namespace(1)
self.gen.set_namespace(None)

+ @suppress_warnings(
+ r'^set_namespace\(\) will be modified to raise TypeError*',
+ FutureWarning)
def test_namespace_param_is_not_settable(self):
"""Test ListGenerator support_namespace."""
self.gen = api.ListGenerator(listaction='querypage', site=self.site)
diff --git a/tests/aspects.py b/tests/aspects.py
index 98d9aa5..f814813 100644
--- a/tests/aspects.py
+++ b/tests/aspects.py
@@ -34,8 +34,12 @@
from pywikibot.exceptions import ServerError, NoUsername
from pywikibot.family import WikimediaFamily
from pywikibot.site import BaseSite
+from pywikibot.tools import suppress_warnings

-from tests import patch_request, unpatch_request, unittest_print
+from tests import (
+ WARN_SITE_CODE, patch_request, unpatch_request, unittest_print
+)
+
from tests.utils import (
execute_pwb, DrySite, DryRequest,
WarningSourceSkipContextManager, AssertAPIErrorContextManager,
@@ -854,8 +858,9 @@
.format(data['code']))

if 'site' not in data and 'code' in data and 'family' in data:
- data['site'] = Site(data['code'], data['family'],
- interface=interface)
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
+ data['site'] = Site(data['code'], data['family'],
+ interface=interface)
if 'hostname' not in data and 'site' in data:
# Ignore if the family has defined this as
# obsolete without a mapping to a hostname.
diff --git a/tests/interwikimap_tests.py b/tests/interwikimap_tests.py
index 815667d..4298709 100644
--- a/tests/interwikimap_tests.py
+++ b/tests/interwikimap_tests.py
@@ -8,7 +8,10 @@

import pywikibot

+from pywikibot.tools import suppress_warnings
+
from tests.aspects import DefaultSiteTestCase
+from tests import WARN_SITE_CODE


class TestInterwikiMap(DefaultSiteTestCase):
@@ -138,9 +141,10 @@
):
continue

- item = self.iw_map[prefix]
- self.assertEqual(item._site, pywikibot.Site(prefix, family))
- self.assertTrue(item.local)
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
+ item = self.iw_map[prefix]
+ self.assertEqual(item._site, pywikibot.Site(prefix, family))
+ self.assertTrue(item.local)

def test_invalid_prefix(self):
"""Test wrong interwiki prefix."""
diff --git a/tests/page_tests.py b/tests/page_tests.py
index 7c1d476..7edfd81 100644
--- a/tests/page_tests.py
+++ b/tests/page_tests.py
@@ -13,6 +13,9 @@
import pywikibot.page

from pywikibot import config, InvalidTitle
+from pywikibot.tools import suppress_warnings
+
+from tests import WARN_SITE_CODE

from tests.aspects import (
DefaultDrySiteTestCase, DefaultSiteTestCase, SiteAttributeTestCase,
@@ -528,8 +531,9 @@
for p2 in mainpage.interwiki(expand=False):
self.assertIsInstance(p2, pywikibot.Link)
self.assertIn(p2, iw)
- for p in mainpage.langlinks():
- self.assertIsInstance(p, pywikibot.Link)
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
+ for p in mainpage.langlinks():
+ self.assertIsInstance(p, pywikibot.Link)
for p in mainpage.imagelinks():
self.assertIsInstance(p, pywikibot.FilePage)
for p in mainpage.templates():
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index 0b6d4e0..db6cf74 100755
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -37,6 +37,15 @@
)
from tests.thread_tests import GeneratorIntersectTestCase

+LINKSEARCH_MSG = (r'.*pywikibot\.pagegenerators\.LinksearchPageGenerator .*'
+ r'is deprecated for .*; use Site\.exturlusage')
+
+PAGES_ID_GEN_MSG = (r'.*pywikibot\.pagegenerators\.PagesFromPageidGenerator .*'
+ r'is deprecated for .*; use site\.load_pages_from_pageids')
+
+REFERRING_PAGE_MSG = (r'.*pywikibot\.pagegenerators\.ReferringPageGenerator .*'
+ r'is deprecated for .*; use Page\.getReferences')
+

en_wp_page_titles = (
# just a bunch of randomly selected titles for English Wikipedia tests
@@ -215,8 +224,10 @@
gen_pages = pagegenerators.PagesFromTitlesGenerator(self.titles,
self.site)
pageids = [page.pageid for page in gen_pages]
- gen = pagegenerators.PagesFromPageidGenerator(pageids, self.site)
- self.assertPageTitlesEqual(gen, self.titles)
+
+ with suppress_warnings(PAGES_ID_GEN_MSG, category=DeprecationWarning):
+ gen = pagegenerators.PagesFromPageidGenerator(pageids, self.site)
+ self.assertPageTitlesEqual(gen, self.titles)


class TestCategoryFilterPageGenerator(BasetitleTestCase):
@@ -628,13 +639,14 @@

def test_non_item_gen(self):
"""Test TestPreloadingEntityGenerator with ReferringPageGenerator."""
- site = self.get_site()
- instance_of_page = pywikibot.Page(site, 'Property:P31')
- ref_gen = pagegenerators.ReferringPageGenerator(instance_of_page,
- total=5)
- gen = pagegenerators.PreloadingEntityGenerator(ref_gen)
- self.assertTrue(all(isinstance(item,
- pywikibot.ItemPage) for item in gen))
+ with suppress_warnings(REFERRING_PAGE_MSG, category=FutureWarning):
+ site = self.get_site()
+ instance_of_page = pywikibot.Page(site, 'Property:P31')
+ ref_gen = pagegenerators.ReferringPageGenerator(instance_of_page,
+ total=5)
+ gen = pagegenerators.PreloadingEntityGenerator(ref_gen)
+ is_all_type = all(isinstance(i, pywikibot.ItemPage) for i in gen)
+ self.assertTrue(is_all_type)


class WikibaseItemFilterPageGeneratorTestCase(TestCase):
@@ -1695,20 +1707,22 @@

def test_double_opposite_protocols(self):
"""Test LinksearchPageGenerator with two opposite protocols."""
- with self.assertRaises(ValueError):
- pagegenerators.LinksearchPageGenerator(
- 'http://w.wiki',
- protocol='https',
- site=self.site)
+ with suppress_warnings(LINKSEARCH_MSG, category=DeprecationWarning):
+ with self.assertRaises(ValueError):
+ pagegenerators.LinksearchPageGenerator(
+ 'http://w.wiki',
+ protocol='https',
+ site=self.site)

def test_double_same_protocols(self):
"""Test LinksearchPageGenerator with two same protocols."""
- gen = pagegenerators.LinksearchPageGenerator('https://w.wiki',
- protocol='https',
- site=self.site,
- total=1)
- self.assertIsInstance(gen, pywikibot.data.api.PageGenerator)
- self.assertLength(list(gen), 1)
+ with suppress_warnings(LINKSEARCH_MSG, category=DeprecationWarning):
+ gen = pagegenerators.LinksearchPageGenerator('https://w.wiki',
+ protocol='https',
+ site=self.site,
+ total=1)
+ self.assertIsInstance(gen, pywikibot.data.api.PageGenerator)
+ self.assertLength(list(gen), 1)


if __name__ == '__main__': # pragma: no cover
diff --git a/tests/reflinks_tests.py b/tests/reflinks_tests.py
index dc94f11..c8c2c9d 100644
--- a/tests/reflinks_tests.py
+++ b/tests/reflinks_tests.py
@@ -8,7 +8,9 @@

from scripts.reflinks import XmlDumpPageGenerator, ReferencesRobot, main

-from tests import join_xml_data_path
+from pywikibot.tools import suppress_warnings
+
+from tests import WARN_SITE_OBJ, join_xml_data_path
from tests.aspects import TestCase, ScriptMainTestCase
from tests.utils import empty_sites

@@ -125,11 +127,13 @@

def test_xml_multiple_namespace_ids(self):
"""Test the generator using multiple separate namespaces parameters."""
- main('-xml:' + join_xml_data_path('dummy-reflinks.xml'),
- '-namespace:0', '-namespace:1', '-xmlstart:Fake page')
- gen = self.constructor_kwargs['generator']
- self.assertPageTitlesCountEqual(gen, ['Fake page', 'Talk:Fake page'],
- site=self.get_site())
+ with suppress_warnings(WARN_SITE_OBJ, category=UserWarning):
+ main('-xml:' + join_xml_data_path('dummy-reflinks.xml'),
+ '-namespace:0', '-namespace:1', '-xmlstart:Fake page')
+ gen = self.constructor_kwargs['generator']
+ self.assertPageTitlesCountEqual(gen, ['Fake page',
+ 'Talk:Fake page'],
+ site=self.get_site())

def test_xml_multiple_namespace_ids_2(self):
"""Test the generator using multiple namespaces in one parameter."""
@@ -150,11 +154,12 @@
filename = '-xml:' + join_xml_data_path('dummy-reflinks.xml')
for start in start_variants:
with self.subTest(xmlstart=start):
- main(filename, '-namespace:1', start)
- gen = self.constructor_kwargs['generator']
- pages = list(gen)
- self.assertPageTitlesEqual(pages, ['Talk:Fake page'],
- site=self.site)
+ with suppress_warnings(WARN_SITE_OBJ, category=UserWarning):
+ main(filename, '-namespace:1', start)
+ gen = self.constructor_kwargs['generator']
+ pages = list(gen)
+ self.assertPageTitlesEqual(pages, ['Talk:Fake page'],
+ site=self.site)

def test_xml_namespace_name(self):
"""Test the generator using a namespace name."""
diff --git a/tests/replacebot_tests.py b/tests/replacebot_tests.py
index ff3267e..97fdb40 100644
--- a/tests/replacebot_tests.py
+++ b/tests/replacebot_tests.py
@@ -11,10 +11,11 @@
import pywikibot

from pywikibot import fixes
+from pywikibot.tools import suppress_warnings

from scripts import replace

-from tests import join_data_path
+from tests import WARN_SITE_OBJ, join_data_path

from tests.bot_tests import TWNBotTestCase
from tests.utils import empty_sites
@@ -92,7 +93,9 @@
"""Run the L{replace.main} with the given args and summary and page."""
# -page to not have an empty generator
# -site as it will use Site() otherwise
- return replace.main(*(args + ('-site:wikipedia:test', '-page:TEST')))
+ with suppress_warnings(WARN_SITE_OBJ, category=UserWarning):
+ return replace.main(*(args + ('-site:wikipedia:test',
+ '-page:TEST')))

def test_invalid_replacements(self):
"""Test invalid command line replacement configurations."""
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 0b01ded..677d1a4 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -21,7 +21,7 @@
from pywikibot.exceptions import HiddenKeyError
from pywikibot.tools import suppress_warnings

-from tests import patch, unittest_print
+from tests import WARN_SITE_CODE, patch, unittest_print
from tests.aspects import (
AlteredDefaultSiteTestCase,
DefaultDrySiteTestCase,
@@ -3163,7 +3163,11 @@
mysite = self.get_site()
mainpage = self.get_mainpage()
links = list(mysite.pagelinks(mainpage, total=20))
- pages = list(mysite.preloadpages(links, groupsize=5, langlinks=True))
+
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
+ gen = mysite.preloadpages(links, groupsize=5, langlinks=True)
+ pages = list(gen)
+
self.assertLength(links, pages)
for page in pages:
self.assertIsInstance(page, pywikibot.Page)
@@ -3299,8 +3303,7 @@

def test_alias_code_site(self):
"""Test Wikimedia site with an alias code."""
- with suppress_warnings(
- 'Site wikipedia:ja instantiated using different code "jp"'):
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
site = pywikibot.Site('jp', 'wikipedia')
self.assertIsInstance(site.obsolete, bool)
self.assertEqual(site.code, 'ja')
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index 4413ffe..f8e7c6e 100644
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -16,9 +16,9 @@
from pywikibot import pagegenerators
from pywikibot.page import ItemPage, Page, PropertyPage, WikibasePage
from pywikibot.site import Namespace, NamespacesDict
-from pywikibot.tools import MediaWikiVersion
+from pywikibot.tools import MediaWikiVersion, suppress_warnings

-from tests import join_pages_path, mock
+from tests import WARN_SITE_CODE, join_pages_path, mock
from tests.aspects import TestCase, WikidataTestCase

from tests.basepage import (
@@ -60,7 +60,8 @@

def test_page_text(self):
"""Test site.loadrevisions() with Page.text."""
- self._test_page_text()
+ with suppress_warnings(WARN_SITE_CODE, category=UserWarning):
+ self._test_page_text()


class TestGeneral(WikidataTestCase):

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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I5f827e684c426f64a58ebb76bf55231e82d1a8ea
Gerrit-Change-Number: 677383
Gerrit-PatchSet: 2
Gerrit-Owner: Damian <atagar1@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged