jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/661124 )
Change subject: Used Context Manager call for assertRaises/assertRaisesRegex
......................................................................
Used Context Manager call for assertRaises/assertRaisesRegex
Bug: T267801
Change-Id: I633ec95525e2aadbd7350e7729df207b403ca960
---
M tests/mediawikiversion_tests.py
M tests/page_tests.py
M tests/pagegenerators_tests.py
M tests/proofreadpage_tests.py
M tests/site_decorators_tests.py
M tests/site_tests.py
6 files changed, 304 insertions(+), 212 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/mediawikiversion_tests.py b/tests/mediawikiversion_tests.py
index 07398cf..6803dfc 100644
--- a/tests/mediawikiversion_tests.py
+++ b/tests/mediawikiversion_tests.py
@@ -1,6 +1,6 @@
"""Tests for the tools.MediaWikiVersion class."""
#
-# (C) Pywikibot team, 2008-2020
+# (C) Pywikibot team, 2008-2021
#
# Distributed under the terms of the MIT license.
#
@@ -71,23 +71,31 @@
def test_invalid_versions(self):
"""Verify that insufficient version fail creating."""
- self.assertRaisesRegex(ValueError, self.INVALID_VERSION_RE,
- MediaWikiVersion, 'invalid')
- self.assertRaisesRegex(ValueError, self.INVALID_VERSION_RE,
- MediaWikiVersion, '1number')
- self.assertRaisesRegex(ValueError, self.INVALID_VERSION_RE,
- MediaWikiVersion, '1.missing')
-
- self.assertRaisesRegex(AssertionError, 'Found \"wmf\" in \"wmf-1\"',
- MediaWikiVersion, '1.23wmf-1')
+ with self.assertRaisesRegex(
+ ValueError,
+ self.INVALID_VERSION_RE):
+ MediaWikiVersion('invalid')
+ with self.assertRaisesRegex(
+ ValueError,
+ self.INVALID_VERSION_RE):
+ MediaWikiVersion('1number')
+ with self.assertRaisesRegex(
+ ValueError,
+ self.INVALID_VERSION_RE):
+ MediaWikiVersion('1.missing')
+ with self.assertRaisesRegex(
+ AssertionError,
+ 'Found \"wmf\" in \"wmf-1\"'):
+ MediaWikiVersion('1.23wmf-1')
def test_generator(self):
"""Test from_generator classmethod."""
self.assertEqual(MediaWikiVersion.from_generator('MediaWiki 1.2.3'),
self._make('1.2.3'))
- self.assertRaisesRegex(ValueError, self.GENERATOR_STRING_RE,
- MediaWikiVersion.from_generator,
- 'Invalid 1.2.3')
+ with self.assertRaisesRegex(
+ ValueError,
+ self.GENERATOR_STRING_RE):
+ MediaWikiVersion.from_generator('Invalid 1.2.3')
if __name__ == '__main__': # pragma: no cover
diff --git a/tests/page_tests.py b/tests/page_tests.py
index b98782b..b7ae037 100644
--- a/tests/page_tests.py
+++ b/tests/page_tests.py
@@ -154,11 +154,11 @@
l3 = pywikibot.page.Link('Translation:Albert Einstein',
source=self.enws)
self.assertEqual(l3.ns_title(), 'Translation:Albert Einstein')
- self.assertRaisesRegex(pywikibot.Error,
- 'No corresponding namespace found for '
- 'namespace Translation: on wikisource:it.',
- l3.ns_title,
- onsite=self.itws)
+ with self.assertRaisesRegex(
+ pywikibot.Error,
+ 'No corresponding namespace found for '
+ 'namespace Translation: on wikisource:it.'):
+ l3.ns_title(onsite=self.itws)
class TestPageObjectEnglish(TestCase):
@@ -313,11 +313,19 @@
# the site parameter.
# Empty string or None as title raises error.
page = pywikibot.page.BasePage(site)
- self.assertRaisesRegex(InvalidTitle, INVALID_TITLE_RE, page.title)
+ with self.assertRaisesRegex(
+ InvalidTitle,
+ INVALID_TITLE_RE):
+ page.title()
page = pywikibot.page.BasePage(site, title='')
- self.assertRaisesRegex(InvalidTitle, INVALID_TITLE_RE, page.title)
- self.assertRaisesRegex(ValueError, 'Title cannot be None.',
- pywikibot.page.BasePage, site, title=None)
+ with self.assertRaisesRegex(
+ InvalidTitle,
+ INVALID_TITLE_RE):
+ page.title()
+ with self.assertRaisesRegex(
+ ValueError,
+ 'Title cannot be None.'):
+ pywikibot.page.BasePage(site, title=None)
def testPageConstructor(self):
"""Test Page constructor."""
@@ -325,20 +333,25 @@
mainpage = self.get_mainpage()
# Test that Page() needs a title when Site is used as source.
- self.assertRaisesRegex(ValueError, EMPTY_TITLE_RE,
- pywikibot.Page, site)
- self.assertRaisesRegex(ValueError, EMPTY_TITLE_RE,
- pywikibot.Page, site, '')
+ with self.assertRaisesRegex(
+ ValueError,
+ EMPTY_TITLE_RE):
+ pywikibot.Page(site)
+ with self.assertRaisesRegex(
+ ValueError,
+ EMPTY_TITLE_RE):
+ pywikibot.Page(site, '')
# Test Page as source.
p1 = pywikibot.Page(mainpage)
self.assertEqual(p1, mainpage)
# Test not valid source.
- self.assertRaisesRegex(pywikibot.Error,
- r"Invalid argument type '<\w* '\w*'>' in "
- 'Page initializer: dummy',
- pywikibot.Page, 'dummy')
+ with self.assertRaisesRegex(
+ pywikibot.Error,
+ r"Invalid argument type '<\w* '\w*'>' in "
+ 'Page initializer: dummy'):
+ pywikibot.Page('dummy')
def testTitle(self):
"""Test title() method options in article namespace."""
@@ -465,7 +478,10 @@
def test_bad_page(self):
"""Test various methods that rely on API: bad page."""
badpage = self.get_missing_article()
- self.assertRaisesRegex(pywikibot.NoPage, NO_PAGE_RE, badpage.get)
+ with self.assertRaisesRegex(
+ pywikibot.NoPage,
+ NO_PAGE_RE):
+ badpage.get()
def testIsDisambig(self):
"""Test the integration with Extension:Disambiguator."""
@@ -578,7 +594,8 @@
image = pywikibot.FilePage(site, 'File:Jean-Léon Gérôme 003.jpg')
if site.mw_version < '1.20':
- self.assertRaises(NotImplementedError, mainpage.page_image)
+ with self.assertRaises(NotImplementedError):
+ mainpage.page_image()
elif site.has_extension('PageImages'):
mainpage_image = mainpage.page_image()
if mainpage_image is not None:
@@ -586,10 +603,11 @@
# for file pages, the API should return the file itself
self.assertEqual(image.page_image(), image)
else:
- self.assertRaisesRegex(pywikibot.UnknownExtension,
- 'Method "loadpageimage" is not implemented '
- 'without the extension PageImages',
- mainpage.page_image)
+ with self.assertRaisesRegex(
+ pywikibot.UnknownExtension,
+ 'Method "loadpageimage" is not implemented '
+ 'without the extension PageImages'):
+ mainpage.page_image()
class TestPageCoordinates(TestCase):
@@ -958,11 +976,15 @@
text = ('This page is used in the [[mw:Manual:Pywikipediabot]] '
'testing suite.')
self.assertEqual(p1.get(), text)
- self.assertRaisesRegex(pywikibot.exceptions.IsRedirectPage,
- r'{0} is a redirect page\.'
- .format(re.escape(str(p2))), p2.get)
- self.assertRaisesRegex(
- pywikibot.exceptions.NoPage, NO_PAGE_RE, p3.get)
+ with self.assertRaisesRegex(
+ pywikibot.exceptions.IsRedirectPage,
+ r'{0} is a redirect page\.'
+ .format(re.escape(str(p2)))):
+ p2.get()
+ with self.assertRaisesRegex(
+ pywikibot.exceptions.NoPage,
+ NO_PAGE_RE):
+ p3.get()
def test_set_redirect_target(self):
"""Test set_redirect_target method."""
@@ -973,12 +995,15 @@
p3 = pywikibot.Page(site, 'User:Legoktm/R3')
text = p2.get(get_redirect=True)
- self.assertRaisesRegex(pywikibot.exceptions.IsNotRedirectPage,
- r'{0} is not a redirect page\.'
- .format(re.escape(str(p1))),
- p1.set_redirect_target, p2)
- self.assertRaisesRegex(pywikibot.exceptions.NoPage, NO_PAGE_RE,
- p3.set_redirect_target, p2)
+ with self.assertRaisesRegex(
+ pywikibot.exceptions.IsNotRedirectPage,
+ r'{0} is not a redirect page\.'
+ .format(re.escape(str(p1)))):
+ p1.set_redirect_target(p2)
+ with self.assertRaisesRegex(
+ pywikibot.exceptions.NoPage,
+ NO_PAGE_RE):
+ p3.set_redirect_target(p2)
p2.set_redirect_target(p1, save=False)
self.assertEqual(text, p2.get(get_redirect=True))
@@ -1031,15 +1056,19 @@
p.delete(reason='pywikibot unit test', prompt=False, mark=False)
self.assertEqual(p._pageid, 0)
self.assertEqual(p.isRedirectPage(), False)
- self.assertRaisesRegex(pywikibot.NoPage,
- NO_PAGE_RE, p.get, force=True)
+ with self.assertRaisesRegex(
+ pywikibot.NoPage,
+ NO_PAGE_RE):
+ p.get(force=True)
# Test undeleting last two revisions
del_revs = list(p.loadDeletedRevisions())
revid = p.getDeletedRevision(del_revs[-1])['revid']
p.markDeletedRevision(del_revs[-1])
p.markDeletedRevision(del_revs[-2])
- self.assertRaisesRegex(ValueError, 'is not a deleted revision',
- p.markDeletedRevision, 123)
+ with self.assertRaisesRegex(
+ ValueError,
+ 'is not a deleted revision'):
+ p.markDeletedRevision(123)
p.undelete(reason='pywikibot unit test')
revs = list(p.revisions())
self.assertLength(revs, 2)
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index b88a87d..3332c68 100755
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -535,11 +535,15 @@
def test_start_0(self):
"""Test for day page generator with startMonth 0."""
- self.assertRaises(calendar.IllegalMonthError, self._run_test, 0)
+ with self.assertRaises(
+ calendar.IllegalMonthError):
+ self._run_test(0)
def test_end_13(self):
"""Test for day page generator with endMonth 13."""
- self.assertRaises(calendar.IllegalMonthError, self._run_test, 12, 13)
+ with self.assertRaises(
+ calendar.IllegalMonthError):
+ self._run_test(12, 13)
class TestPreloadingGenerator(DefaultSiteTestCase):
@@ -710,7 +714,8 @@
def test_unsupported_quality_level_filter(self):
"""Test unsupported option."""
gf = pagegenerators.GeneratorFactory(site=self.get_site())
- self.assertRaises(UnknownExtension, gf.handleArg, '-ql:2')
+ with self.assertRaises(UnknownExtension):
+ gf.handleArg('-ql:2')
def test_one_excluded_namespaces(self):
"""Test one excluded namespaces."""
@@ -999,10 +1004,10 @@
gf.handle_arg('-ns:3,1')
# allpages only accepts a single namespace, and will raise a
# TypeError if self.namespaces contains more than one namespace.
- self.assertRaises(
- TypeError,
- 'allpages module does not support multiple namespaces',
- gf.getCombinedGenerator)
+ with self.assertRaises(
+ TypeError,
+ 'allpages module does not support multiple namespaces'):
+ gf.getCombinedGenerator()
def test_prefixing_default(self):
"""Test prefixindex generator."""
@@ -1033,12 +1038,14 @@
gf.handle_arg('-recentchanges:120,70')
gen = gf.getCombinedGenerator()
self.assertIsNotNone(gen)
- self.assertRaises(ValueError, gf.handleArg, '-recentchanges:3,2,1')
- self.assertRaises(ValueError, gf.handleArg, '-recentchanges:12,-12')
- self.assertRaises(
- ValueError, gf.handleArg, '-recentchanges:visualeditor,3,2,1')
- self.assertRaises(
- ValueError, gf.handleArg, '-recentchanges:"mobile edit,-10,20"')
+ with self.assertRaises(ValueError):
+ gf.handleArg('-recentchanges:3,2,1')
+ with self.assertRaises(ValueError):
+ gf.handleArg('-recentchanges:12,-12')
+ with self.assertRaises(ValueError):
+ gf.handleArg('-recentchanges:visualeditor,3,2,1')
+ with self.assertRaises(ValueError):
+ gf.handleArg('-recentchanges:"mobile edit,-10,20"')
def test_recentchanges_rctag(self):
"""Test recentchanges generator with recent changes tag."""
@@ -1246,7 +1253,8 @@
self.skipTest('The site {0} does not use Linter extension'
.format(self.site))
gf = pagegenerators.GeneratorFactory(site=self.site)
- self.assertRaises(AssertionError, gf.handleArg, '-linter:dummy')
+ with self.assertRaises(AssertionError):
+ gf.handleArg('-linter:dummy')
def test_linter_generator_show(self):
"""Test generator of pages with lint errors."""
@@ -1256,7 +1264,8 @@
gf.handle_arg('-linter:show')
self.assertEqual(cm.exception.code, 0)
else:
- self.assertRaises(UnknownExtension, gf.handleArg, '-linter:show')
+ with self.assertRaises(UnknownExtension):
+ gf.handleArg('-linter:show')
def test_querypage_generator_with_valid_page(self):
"""Test generator of pages with lint errors."""
@@ -1273,7 +1282,8 @@
def test_querypage_generator_with_invalid_page(self):
"""Test generator of pages with lint errors."""
gf = pagegenerators.GeneratorFactory(site=self.site)
- self.assertRaises(AssertionError, gf.handleArg, '-querypage:dummy')
+ with self.assertRaises(AssertionError):
+ gf.handleArg('-querypage:dummy')
def test_querypage_generator_with_no_page(self):
"""Test generator of pages with lint errors."""
@@ -1498,8 +1508,8 @@
gf = factory()
self.assertFalse(gf.handle_arg('-log'))
self.assertFalse(gf.handle_arg('-log:text_here'))
- self.assertRaises(NotImplementedError,
- gf.handleArg, '-logevents:anyevent')
+ with self.assertRaises(NotImplementedError):
+ gf.handleArg('-logevents:anyevent')
# test that old format log option is not handled by any handler method.
gf_mock = mock.create_autospec(gf)
self.assertFalse(factory.handle_arg(gf_mock, '-anotherlog'))
@@ -1687,8 +1697,11 @@
def test_double_opposite_protocols(self):
"""Test LinksearchPageGenerator with two opposite protocols."""
- self.assertRaises(ValueError, pagegenerators.LinksearchPageGenerator,
- 'http://w.wiki', protocol='https', site=self.site)
+ 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."""
diff --git a/tests/proofreadpage_tests.py b/tests/proofreadpage_tests.py
index fd402e8..78e38d3 100644
--- a/tests/proofreadpage_tests.py
+++ b/tests/proofreadpage_tests.py
@@ -1,6 +1,6 @@
"""Tests for the proofreadpage module."""
#
-# (C) Pywikibot team, 2015-2020
+# (C) Pywikibot team, 2015-2021
#
# Distributed under the terms of the MIT license.
#
@@ -34,8 +34,8 @@
def test_invalid_site_source(self):
"""Test ProofreadPage from invalid Site as source."""
- self.assertRaises(pywikibot.UnknownExtension,
- ProofreadPage, self.site, 'title')
+ with self.assertRaises(pywikibot.UnknownExtension):
+ ProofreadPage(self.site, 'title')
class TestBasePageMethodsProofreadPage(BasePageMethodsTestBase):
@@ -197,7 +197,8 @@
def test_invalid_existing_page_source(self):
"""Test ProofreadPage from invalid existing Page as source."""
source = pywikibot.Page(self.site, self.existing_invalid['title'])
- self.assertRaises(ValueError, ProofreadPage, source)
+ with self.assertRaises(ValueError):
+ ProofreadPage(source)
def test_invalid_not_existing_page_source(self):
"""Test ProofreadPage from invalid not existing Page as source."""
@@ -214,13 +215,15 @@
"""Test ProofreadPage from Page not existing in non-Page ns."""
source = pywikibot.Page(self.site,
self.not_existing_invalid['title1'])
- self.assertRaises(ValueError, ProofreadPage, source)
+ with self.assertRaises(ValueError):
+ ProofreadPage(source)
def test_invalid_link_source(self):
"""Test ProofreadPage from invalid Link as source."""
source = pywikibot.Link(self.not_existing_invalid['title'],
source=self.site)
- self.assertRaises(ValueError, ProofreadPage, source)
+ with self.assertRaises(ValueError):
+ ProofreadPage(source)
def test_valid_link_source(self):
"""Test ProofreadPage from valid Link as source."""
@@ -313,7 +316,8 @@
page = ProofreadPage(self.site, self.existing_unlinked['title'])
# test Exception in property.
- self.assertRaises(ValueError, getattr, page, 'url_image')
+ with self.assertRaises(ValueError):
+ getattr(page, 'url_image')
class TestPageQuality(TestCase):
@@ -383,7 +387,8 @@
def test_ocr_exceptions(self):
"""Test page.ocr() exceptions."""
- self.assertRaises(TypeError, self.page.ocr, ocr_tool='dummy')
+ with self.assertRaises(TypeError):
+ self.page.ocr(ocr_tool='dummy')
def test_do_hocr(self):
"""Test page._do_hocr()."""
@@ -464,7 +469,8 @@
del page.index
self.assertFalse(hasattr(page, '_index'))
# Test setter with wrong type.
- self.assertRaises(TypeError, setattr, page, 'index', 'invalid index')
+ with self.assertRaises(TypeError):
+ setattr(page, 'index', 'invalid index')
# Test setter with correct type.
page.index = index_page
self.assertEqual(page.index, index_page)
@@ -496,8 +502,8 @@
def test_invalid_site_source(self):
"""Test IndexPage from invalid Site as source."""
- self.assertRaises(pywikibot.UnknownExtension,
- IndexPage, self.site, 'title')
+ with self.assertRaises(pywikibot.UnknownExtension):
+ IndexPage(self.site, 'title')
class TestIndexPageValidSite(BS4TestCase):
@@ -521,19 +527,22 @@
def test_invalid_existing_page_as_source(self):
"""Test IndexPage from invalid existing Page as source."""
source = pywikibot.Page(self.site, self.existing_invalid_title)
- self.assertRaises(ValueError, IndexPage, source)
+ with self.assertRaises(ValueError):
+ IndexPage(source)
def test_invalid_not_existing_page_as_source(self):
"""Test IndexPage from Page not existing in non-Page ns as source."""
source = pywikibot.Page(self.site,
self.not_existing_invalid_title)
- self.assertRaises(ValueError, IndexPage, source)
+ with self.assertRaises(ValueError):
+ IndexPage(source)
def test_invalid_link_as_source(self):
"""Test IndexPage from invalid Link as source."""
source = pywikibot.Link(self.not_existing_invalid_title,
source=self.site)
- self.assertRaises(ValueError, IndexPage, source)
+ with self.assertRaises(ValueError):
+ IndexPage(source)
def test_valid_link_as_source(self):
"""Test IndexPage from valid Link as source."""
@@ -687,12 +696,14 @@
# Get label from number.
self.assertEqual(index_page.get_label_from_page_number(num), label)
# Error if number does not exists.
- self.assertRaises(KeyError, index_page.get_label_from_page_number, -1)
+ with self.assertRaises(KeyError):
+ index_page.get_label_from_page_number(-1)
# Get label from page.
self.assertEqual(index_page.get_label_from_page(proofread_page), label)
# Error if page does not exists.
- self.assertRaises(KeyError, index_page.get_label_from_page, None)
+ with self.assertRaises(KeyError):
+ index_page.get_label_from_page(None)
def test_get_page_and_number(self, key):
"""Test IndexPage page get_page_number functions."""
@@ -709,8 +720,8 @@
# Error if label does not exists.
label, num_set = 'dummy label', []
- self.assertRaises(KeyError, index_page.get_page_number_from_label,
- 'dummy label')
+ with self.assertRaises(KeyError):
+ index_page.get_page_number_from_label('dummy label')
# Test get_page_from_label.
for label, page_set in data['get_page']:
@@ -721,8 +732,8 @@
page_set)
# Error if label does not exists.
- self.assertRaises(KeyError, index_page.get_page_from_label,
- 'dummy label')
+ with self.assertRaises(KeyError):
+ index_page.get_page_from_label('dummy label')
# Test get_page.
for n in num_set:
@@ -744,9 +755,12 @@
proofread_page = ProofreadPage(self.site, page_title)
# Check start/end limits.
- self.assertRaises(ValueError, index_page.page_gen, -1, 2)
- self.assertRaises(ValueError, index_page.page_gen, 1, -1)
- self.assertRaises(ValueError, index_page.page_gen, 2, 1)
+ with self.assertRaises(ValueError):
+ index_page.page_gen(-1, 2)
+ with self.assertRaises(ValueError):
+ index_page.page_gen(1, -1)
+ with self.assertRaises(ValueError):
+ index_page.page_gen(2, 1)
# Check quality filters.
gen = index_page.page_gen(num, num, filter_ql=range(5))
@@ -792,9 +806,12 @@
def test_page_gen_redlink(self):
"""Test Index page generator with redlinks."""
# Check start/end limits.
- self.assertRaises(ValueError, self.index.page_gen, -1, 2)
- self.assertRaises(ValueError, self.index.page_gen, 1, -1)
- self.assertRaises(ValueError, self.index.page_gen, 2, 1)
+ with self.assertRaises(ValueError):
+ self.index.page_gen(-1, 2)
+ with self.assertRaises(ValueError):
+ self.index.page_gen(1, -1)
+ with self.assertRaises(ValueError):
+ self.index.page_gen(2, 1)
gen = self.index.page_gen(1, None, filter_ql=range(5))
self.assertEqual(list(gen), self.pages)
diff --git a/tests/site_decorators_tests.py b/tests/site_decorators_tests.py
index 1dae01a..55f3d72 100644
--- a/tests/site_decorators_tests.py
+++ b/tests/site_decorators_tests.py
@@ -87,8 +87,8 @@
retval = self.call_this_sysop_req_function(*args, **kwargs)
self.assertEqual(retval[0], args)
self.assertEqual(retval[1], kwargs)
- self.assertRaises(UserRightsError, self.call_this_steward_req_function,
- args, kwargs)
+ with self.assertRaises(UserRightsError):
+ self.call_this_steward_req_function(args, kwargs)
def test_must_be_user(self):
"""Test a function which requires a user."""
@@ -98,8 +98,8 @@
retval = self.call_this_user_req_function(*args, **kwargs)
self.assertEqual(retval[0], args)
self.assertEqual(retval[1], kwargs)
- self.assertRaises(UserRightsError, self.call_this_sysop_req_function,
- args, kwargs)
+ with self.assertRaises(UserRightsError):
+ self.call_this_sysop_req_function(args, kwargs)
def test_override_usertype(self):
"""Test overriding the required group."""
@@ -121,8 +121,8 @@
self.assertEqual(retval[0], args)
self.assertEqual(retval[1], kwargs)
self.login('user')
- self.assertRaises(UserRightsError, self.call_this_user_req_function,
- args, kwargs)
+ with self.assertRaises(UserRightsError):
+ self.call_this_user_req_function(args, kwargs)
class TestNeedRight(DebugOnlyTestCase):
@@ -185,8 +185,8 @@
retval = self.call_this_move_req_function(*args, **kwargs)
self.assertEqual(retval[0], args)
self.assertEqual(retval[1], kwargs)
- self.assertRaises(UserRightsError, self.call_this_edit_req_function,
- args, kwargs)
+ with self.assertRaises(UserRightsError):
+ self.call_this_edit_req_function(args, kwargs)
class TestNeedVersion(DeprecationTestCase):
@@ -243,7 +243,8 @@
def test_need_version(self):
"""Test need_version when the version is new, exact or old enough."""
- self.assertRaises(NotImplementedError, self.too_new)
+ with self.assertRaises(NotImplementedError):
+ self.too_new()
self.assertTrue(self.old_enough())
self.assertTrue(self.older())
@@ -254,18 +255,18 @@
# The outermost decorator is the version check, so no
# deprecation message.
- self.assertRaisesRegex(
- NotImplementedError,
- 'deprecated_unavailable_method',
- self.deprecated_unavailable_method)
+ with self.assertRaisesRegex(
+ NotImplementedError,
+ 'deprecated_unavailable_method'):
+ self.deprecated_unavailable_method()
self.assertNoDeprecation()
# The deprecator is first, but the version check still
# raises exception.
- self.assertRaisesRegex(
- NotImplementedError,
- 'deprecated_unavailable_method2',
- self.deprecated_unavailable_method2)
+ with self.assertRaisesRegex(
+ NotImplementedError,
+ 'deprecated_unavailable_method2'):
+ self.deprecated_unavailable_method2()
self.assertOneDeprecationParts(
__name__ + '.TestNeedVersion.deprecated_unavailable_method2')
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 4030e2e..7f8af74 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -237,8 +237,8 @@
with self.subTest(message='nosuchmessage'):
self.assertFalse(mysite.has_mediawiki_message('nosuchmessage'))
- self.assertRaises(KeyError, mysite.mediawiki_message,
- 'nosuchmessage')
+ with self.assertRaises(KeyError):
+ mysite.mediawiki_message('nosuchmessage')
msg = ('about', 'aboutpage')
with self.subTest(messages=msg):
@@ -267,12 +267,14 @@
# mediawiki_messages must be given a list; using a string will split it
with self.subTest(messages='about'):
- self.assertRaises(KeyError, self.site.mediawiki_messages, 'about')
+ with self.assertRaises(KeyError):
+ self.site.mediawiki_messages('about')
msg = ('nosuchmessage1', 'about', 'aboutpage', 'nosuchmessage')
with self.subTest(messages=msg):
self.assertFalse(mysite.has_all_mediawiki_messages(msg))
- self.assertRaises(KeyError, mysite.mediawiki_messages, msg)
+ with self.assertRaises(KeyError):
+ mysite.mediawiki_messages(msg)
with self.subTest(test='server_time'):
self.assertIsInstance(mysite.server_time(), pywikibot.Timestamp)
@@ -319,8 +321,8 @@
self.assertIsInstance(mysite.getredirtarget(mainpage),
pywikibot.Page)
else:
- self.assertRaises(pywikibot.IsNotRedirectPage,
- mysite.getredirtarget, mainpage)
+ with self.assertRaises(pywikibot.IsNotRedirectPage):
+ mysite.getredirtarget(mainpage)
a = list(mysite.preloadpages([mainpage]))
self.assertLength(a, int(mainpage.exists()))
if a:
@@ -613,7 +615,8 @@
self.assertGreaterEqual(page.title(with_ns=False), 'From')
self.assertTrue(hasattr(page, '_fromid'))
errgen = mysite.alllinks(unique=True, fromids=True)
- self.assertRaises(pywikibot.Error, next, errgen)
+ with self.assertRaises(pywikibot.Error):
+ next(errgen)
def test_all_categories(self):
"""Test the site.allcategories() method."""
@@ -684,7 +687,8 @@
pages = list(mysite.querypage('Longpages', total=10))
self.assertTrue(all(isinstance(p, pywikibot.Page) for p in pages))
- self.assertRaises(AssertionError, mysite.querypage, 'LongpageX')
+ with self.assertRaises(AssertionError):
+ mysite.querypage('LongpageX')
def test_longpages(self):
"""Test the site.longpages() method."""
@@ -812,13 +816,18 @@
# starttime earlier than endtime
with self.subTest(starttime=low, endtime=high, reverse=False):
- self.assertRaises(AssertionError, mysite.blocks, total=5,
- starttime=low, endtime=high)
+ with self.assertRaises(AssertionError):
+ mysite.blocks(total=5,
+ starttime=low,
+ endtime=high)
# reverse: endtime earlier than starttime
with self.subTest(starttime=high, endtime=low, reverse=True):
- self.assertRaises(AssertionError, mysite.blocks, total=5,
- starttime=high, endtime=low, reverse=True)
+ with self.assertRaises(AssertionError):
+ mysite.blocks(total=5,
+ starttime=high,
+ endtime=low,
+ reverse=True)
def test_exturl_usage(self):
"""Test the site.exturlusage() method."""
@@ -916,19 +925,23 @@
# reverse=False, is_ts=False
self.assertIsNone(func('m', 1, 2, False, False))
- self.assertRaises(AssertionError, func, 'm', 2, 1, False, False)
+ with self.assertRaises(AssertionError):
+ func('m', 2, 1, False, False)
# reverse=False, is_ts=True
self.assertIsNone(func('m', 2, 1, False, True))
- self.assertRaises(AssertionError, func, 'm', 1, 2, False, True)
+ with self.assertRaises(AssertionError):
+ func('m', 1, 2, False, True)
# reverse=True, is_ts=False
self.assertIsNone(func('m', 2, 1, True, False))
- self.assertRaises(AssertionError, func, 'm', 1, 2, True, False)
+ with self.assertRaises(AssertionError):
+ func('m', 1, 2, True, False)
# reverse=True, is_ts=True
self.assertIsNone(func('m', 1, 2, True, True))
- self.assertRaises(AssertionError, func, 'm', 2, 1, True, True)
+ with self.assertRaises(AssertionError):
+ func('m', 2, 1, True, True)
class TestLockingPage(DefaultSiteTestCase):
@@ -969,8 +982,9 @@
p1 = pywikibot.Page(site, 'Foo')
site.lock_page(page=p1, block=True)
- self.assertRaises(pywikibot.site.PageInUse, site.lock_page, page=p1,
- block=False)
+ with self.assertRaises(pywikibot.site.PageInUs):
+ site.lock_page(page=p1,
+ block=False)
site.unlock_page(page=p1)
# verify it's unlocked
site.lock_page(page=p1, block=False)
@@ -1234,18 +1248,18 @@
'2008-02-03T00:00:01Z' <= str(entry.timestamp())
<= '2008-02-03T23:59:59Z')
# starttime earlier than endtime
- self.assertRaises(AssertionError, mysite.logevents,
- start=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T00:00:01Z'),
- end=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T23:59:59Z'), total=5)
+ with self.assertRaises(AssertionError):
+ mysite.logevents(start=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T00:00:01Z'),
+ end=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T23:59:59Z'), total=5)
# reverse: endtime earlier than starttime
- self.assertRaises(AssertionError, mysite.logevents,
- start=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T23:59:59Z'),
- end=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T00:00:01Z'),
- reverse=True, total=5)
+ with self.assertRaises(AssertionError):
+ mysite.logevents(start=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T23:59:59Z'),
+ end=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T00:00:01Z'),
+ reverse=True, total=5)
class TestRecentChanges(DefaultSiteTestCase):
@@ -1319,16 +1333,16 @@
'2008-10-05T06:00:01Z' <= change['timestamp']
<= '2008-10-05T23:59:59Z')
# start earlier than end
- self.assertRaises(AssertionError, mysite.recentchanges,
- start='2008-02-03T00:00:01Z',
- end='2008-02-03T23:59:59Z', total=5)
+ with self.assertRaises(AssertionError):
+ mysite.recentchanges(start='2008-02-03T00:00:01Z',
+ end='2008-02-03T23:59:59Z', total=5)
# reverse: end earlier than start
- self.assertRaises(AssertionError, mysite.recentchanges,
- start=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T23:59:59Z'),
- end=pywikibot.Timestamp.fromISOformat(
- '2008-02-03T00:00:01Z'),
- reverse=True, total=5)
+ with self.assertRaises(AssertionError):
+ mysite.recentchanges(start=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T23:59:59Z'),
+ end=pywikibot.Timestamp.fromISOformat(
+ '2008-02-03T00:00:01Z'),
+ reverse=True, total=5)
def test_ns_file(self):
"""Test the site.recentchanges() method with File: and File talk:."""
@@ -1620,15 +1634,16 @@
"""Test the site.usercontribs() method with invalid parameters."""
mysite = self.get_site()
# start earlier than end
- self.assertRaises(AssertionError, mysite.usercontribs,
- userprefix='Jim',
- start='2008-10-03T00:00:01Z',
- end='2008-10-03T23:59:59Z', total=5)
+ with self.assertRaises(AssertionError):
+ mysite.usercontribs(userprefix='Jim',
+ start='2008-10-03T00:00:01Z',
+ end='2008-10-03T23:59:59Z', total=5)
# reverse: end earlier than start
- self.assertRaises(AssertionError, mysite.usercontribs,
- userprefix='Jim',
- start='2008-10-03T23:59:59Z',
- end='2008-10-03T00:00:01Z', reverse=True, total=5)
+ with self.assertRaises(AssertionError):
+ mysite.usercontribs(userprefix='Jim',
+ start='2008-10-03T23:59:59Z',
+ end='2008-10-03T00:00:01Z',
+ reverse=True, total=5)
class TestAlldeletedrevisionsAsUser(DefaultSiteTestCase):
@@ -1862,13 +1877,14 @@
'2008-10-15T06:00:01Z' <= rev['timestamp']
<= '2008-10-15T23:59:59Z')
# start earlier than end
- self.assertRaises(AssertionError, mysite.watchlist_revs,
- start='2008-09-03T00:00:01Z',
- end='2008-09-03T23:59:59Z', total=5)
+ with self.assertRaises(AssertionError):
+ mysite.watchlist_revs(start='2008-09-03T00:00:01Z',
+ end='2008-09-03T23:59:59Z', total=5)
# reverse: end earlier than start
- self.assertRaises(AssertionError, mysite.watchlist_revs,
- start='2008-09-03T23:59:59Z',
- end='2008-09-03T00:00:01Z', reverse=True, total=5)
+ with self.assertRaises(AssertionError):
+ mysite.watchlist_revs(start='2008-09-03T23:59:59Z',
+ end='2008-09-03T00:00:01Z',
+ reverse=True, total=5)
for rev in mysite.watchlist_revs(namespaces=[6, 7], total=5):
self.assertIsInstance(rev, dict)
self.assertIn('title', rev)
@@ -2148,12 +2164,12 @@
"""Test that site.protect() throws an exception for invalid args."""
site = self.get_site()
p1 = pywikibot.Page(site, 'User:Unicodesnowman/ProtectTest')
- self.assertRaises(AssertionError, site.protect,
- protections={'anInvalidValue': 'sysop'},
- page=p1, reason='Pywikibot unit test')
- self.assertRaises(AssertionError, site.protect,
- protections={'edit': 'anInvalidValue'},
- page=p1, reason='Pywikibot unit test')
+ with self.assertRaises(AssertionError):
+ site.protect(protections={'anInvalidValue': 'sysop'},
+ page=p1, reason='Pywikibot unit test')
+ with self.assertRaises(AssertionError):
+ site.protect(protections={'edit': 'anInvalidValue'},
+ page=p1, reason='Pywikibot unit test')
def test_delete(self):
"""Test the site.deletepage() and site.undelete_page() methods."""
@@ -2164,7 +2180,8 @@
site.undelete_page(p, 'pywikibot unit tests')
site.deletepage(p, reason='pywikibot unit tests')
- self.assertRaises(pywikibot.NoPage, p.get, force=True)
+ with self.assertRaises(pywikibot.NoPage):
+ p.get(force=True)
site.undelete_page(p, 'pywikibot unit tests',
revisions=['2014-12-21T06:07:47Z',
@@ -2400,8 +2417,9 @@
self.mysite.loadrevisions(self.mainpage, revids='140001')
self.assertIn(140001, self.mainpage._revisions)
# revids belonging to a different page raises Exception
- self.assertRaises(pywikibot.Error, self.mysite.loadrevisions,
- self.mainpage, revids=130000)
+ with self.assertRaises(pywikibot.Error):
+ self.mysite.loadrevisions(self.mainpage,
+ revids=130000)
def test_loadrevisions_querycontinue(self):
"""Test the site.loadrevisions() method with query-continue."""
@@ -2423,17 +2441,17 @@
# Retrieve oldest revisions; listing based on timestamp.
# Raises "loadrevisions: starttime > endtime with rvdir=True"
- self.assertRaises(ValueError, self.mysite.loadrevisions,
- self.mainpage, rvdir=True,
- starttime='2002-02-01T00:00:00Z',
- endtime='2002-01-01T00:00:00Z')
+ with self.assertRaises(ValueError):
+ self.mysite.loadrevisions(self.mainpage, rvdir=True,
+ starttime='2002-02-01T00:00:00Z',
+ endtime='2002-01-01T00:00:00Z')
# Retrieve newest revisions; listing based on timestamp.
# Raises "loadrevisions: endtime > starttime with rvdir=False"
- self.assertRaises(ValueError, self.mysite.loadrevisions,
- self.mainpage, rvdir=False,
- starttime='2002-01-01T00:00:00Z',
- endtime='2002-02-01T00:00:00Z')
+ with self.assertRaises(ValueError):
+ self.mysite.loadrevisions(self.mainpage, rvdir=False,
+ starttime='2002-01-01T00:00:00Z',
+ endtime='2002-02-01T00:00:00Z')
def test_loadrevisions_rev_id(self):
"""Test the site.loadrevisions() method, listing based on rev_id."""
@@ -2444,15 +2462,15 @@
# Retrieve oldest revisions; listing based on revid.
# Raises "loadrevisions: startid > endid with rvdir=True"
- self.assertRaises(ValueError, self.mysite.loadrevisions,
- self.mainpage, rvdir=True,
- startid='200000', endid='100000')
+ with self.assertRaises(ValueError):
+ self.mysite.loadrevisions(self.mainpage, rvdir=True,
+ startid='200000', endid='100000')
# Retrieve newest revisions; listing based on revid.
# Raises "loadrevisions: endid > startid with rvdir=False
- self.assertRaises(ValueError, self.mysite.loadrevisions,
- self.mainpage, rvdir=False,
- startid='100000', endid='200000')
+ with self.assertRaises(ValueError):
+ self.mysite.loadrevisions(self.mainpage, rvdir=False,
+ startid='100000', endid='200000')
def test_loadrevisions_user(self):
"""Test the site.loadrevisions() method, filtering by user."""
@@ -3163,8 +3181,9 @@
def test_invalid_language(self):
"""Test behavior of search_entities with invalid language provided."""
datasite = self.get_repo()
- self.assertRaises(ValueError, datasite.search_entities, 'abc',
- 'invalidlanguage')
+ with self.assertRaises(ValueError):
+ datasite.search_entities('abc',
+ 'invalidlanguage')
class TestSametitleSite(TestCase):
@@ -3245,7 +3264,8 @@
self.assertEqual(site.code, 'ru-sib')
self.assertIsInstance(site.obsolete, bool)
self.assertTrue(site.obsolete)
- self.assertRaises(KeyError, site.hostname)
+ with self.assertRaises(KeyError):
+ site.hostname()
# See also http_tests, which tests that ru-sib.wikipedia.org is offline
def test_alias_code_site(self):
@@ -3301,12 +3321,14 @@
self.assertFalse(site.obsolete)
self.assertEqual(site.family.hostname('en'), url)
- self.assertRaises(KeyError, site.family.hostname, 'wow')
- self.assertRaises(KeyError, site.family.hostname, 'wowwiki')
- self.assertRaises(pywikibot.UnknownSite, pywikibot.Site,
- 'wowwiki', 'wowwiki')
- self.assertRaises(pywikibot.UnknownSite, pywikibot.Site,
- 'ceb', 'wowwiki')
+ with self.assertRaises(KeyError):
+ site.family.hostname('wow')
+ with self.assertRaises(KeyError):
+ site.family.hostname('wowwiki')
+ with self.assertRaises(pywikibot.UnknownSite):
+ pywikibot.Site('wowwiki', 'wowwiki')
+ with self.assertRaises(pywikibot.UnknownSite):
+ pywikibot.Site('ceb', 'wowwiki')
class TestProductionAndTestSite(AlteredDefaultSiteTestCase):
@@ -3340,7 +3362,8 @@
self.assertIsInstance(site.namespaces, Mapping)
self.assertFalse(site.obsolete)
- self.assertRaises(KeyError, site.family.hostname, 'en')
+ with self.assertRaises(KeyError):
+ site.family.hostname('en')
pywikibot.config.family = 'commons'
pywikibot.config.mylang = 'de'
@@ -3351,8 +3374,8 @@
self.assertEqual(site2.code, 'beta')
self.assertFalse(site2.obsolete)
- self.assertRaises(pywikibot.UnknownSite,
- pywikibot.Site)
+ with self.assertRaises(pywikibot.UnknownSite):
+ pywikibot.Site()
def test_wikidata(self):
"""Test Wikidata family, with sites for test and production."""
@@ -3362,7 +3385,8 @@
self.assertIsInstance(site.namespaces, Mapping)
self.assertFalse(site.obsolete)
- self.assertRaises(KeyError, site.family.hostname, 'en')
+ with self.assertRaises(KeyError):
+ site.family.hostname('en')
pywikibot.config.family = 'wikidata'
pywikibot.config.mylang = 'en'
@@ -3372,8 +3396,8 @@
self.assertEqual(site2.code, 'test')
# Languages can't be used due to T71255
- self.assertRaises(pywikibot.UnknownSite,
- pywikibot.Site, 'en', 'wikidata')
+ with self.assertRaises(pywikibot.UnknownSite):
+ pywikibot.Site('en', 'wikidata')
class TestSiteProofreadinfo(DefaultSiteTestCase):
@@ -3410,14 +3434,14 @@
def test_cache_proofreadinfo_on_site_without_proofreadpage(self):
"""Test Site._cache_proofreadinfo()."""
site = self.get_site('en-wp')
- self.assertRaises(pywikibot.UnknownExtension,
- site._cache_proofreadinfo)
- self.assertRaises(pywikibot.UnknownExtension,
- lambda x: x.proofread_index_ns, site)
- self.assertRaises(pywikibot.UnknownExtension,
- lambda x: x.proofread_page_ns, site)
- self.assertRaises(pywikibot.UnknownExtension,
- lambda x: x.proofread_levels, site)
+ with self.assertRaises(pywikibot.UnknownExtension):
+ site._cache_proofreadinfo()
+ with self.assertRaises(pywikibot.UnknownExtension):
+ lambda x: x.proofread_index_ns(site)
+ with self.assertRaises(pywikibot.UnknownExtension):
+ lambda x: x.proofread_page_ns(site)
+ with self.assertRaises(pywikibot.UnknownExtension):
+ lambda x: x.proofread_levels(site)
class TestPropertyNames(DefaultSiteTestCase):
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/661124
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I633ec95525e2aadbd7350e7729df207b403ca960
Gerrit-Change-Number: 661124
Gerrit-PatchSet: 4
Gerrit-Owner: Homeboy 445 <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits