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

Reply via email to