jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/657287 )

Change subject: Adopted context Manager call for assertRaises in certain 
script(s)
......................................................................

Adopted context Manager call for assertRaises in certain script(s)

Bug: T267801
Change-Id: I091828126064f3e4a47f0ad6671d202a9a969da3
---
M tests/api_tests.py
M tests/archivebot_tests.py
M tests/bot_tests.py
M tests/category_tests.py
4 files changed, 66 insertions(+), 50 deletions(-)

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/api_tests.py b/tests/api_tests.py
index 2a5ccdc..69c850b 100644
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -92,7 +92,8 @@
         super().tearDown()

     def _test_assert_called_with(self, req):
-        self.assertRaises(api.APIMWException, req.submit)
+        with self.assertRaises(api.APIMWException):
+            req.submit()
         pywikibot.warning.assert_called_with(
             'API error internal_api_error_fake: Fake error message')
         pywikibot.error.assert_called_with(
@@ -331,8 +332,9 @@

         with patch.object(pywikibot, 'warning') as w:
             pi.fetch('foobar')
-            self.assertRaises(KeyError, pi.__getitem__, 'foobar')
-            self.assertRaises(KeyError, pi.__getitem__, 'foobar+foobar')
+            with self.assertRaises(KeyError):
+                pi.__getitem__('foobar')
+                pi.__getitem__('foobar+foobar')
         # The warning message may be different with older MW versions.
         self.assertIn('API warning (paraminfo): ', w.call_args[0][0])

@@ -357,11 +359,13 @@
             self.assertEqual(mod, pi[mod]['path'])

         with patch.object(pywikibot, 'warning') as w:
-            self.assertRaises(KeyError, pi.__getitem__, 'query+foobar')
+            with self.assertRaises(KeyError):
+                pi.__getitem('query+foobar')
         # The warning message may be different with older MW versions.
         self.assertIn('API warning (paraminfo): ', w.call_args[0][0])

-        self.assertRaises(KeyError, pi.submodules, 'edit')
+        with self.assertRaises(KeyError):
+            pi.submodules('edit')

     def test_module_paths(self):
         """Test module paths use the complete paths."""
@@ -471,9 +475,10 @@
     def test_non_lazy_load(self):
         """Test OptionSet with initialised site."""
         options = api.OptionSet(self.get_site(), 'recentchanges', 'show')
-        self.assertRaises(KeyError, options.__setitem__, 'invalid_name', True)
-        self.assertRaises(ValueError, options.__setitem__,
-                          'anon', 'invalid_value')
+        with self.assertRaises(KeyError):
+            options.__setitems__('invalid_name', True)
+        with self.assertRaises(ValueError):
+            options.__setitem__('anon', 'invalid_value')
         options['anon'] = True
         self.assertCountEqual(['anon'], options._enabled)
         self.assertEqual(set(), options._disabled)
@@ -500,13 +505,13 @@
         options['anon'] = True
         self.assertIn('invalid_name', options._enabled)
         self.assertLength(options, 2)
-        self.assertRaises(KeyError, options._set_site, self.get_site(),
-                          'recentchanges', 'show')
+        with self.assertRaises(KeyError):
+            options._set_site(self.get_site(), 'recentchanges', 'show')
         self.assertLength(options, 2)
         options._set_site(self.get_site(), 'recentchanges', 'show', True)
         self.assertLength(options, 1)
-        self.assertRaises(TypeError, options._set_site, self.get_site(),
-                          'recentchanges', 'show')
+        with self.assertRaises(TypeError):
+            options._set_site(self.get_site(), 'recentchanges', 'show')


 class TestDryOptionSet(DefaultDrySiteTestCase):
@@ -625,9 +630,10 @@

     def test_namespace(self):
         """Test PageGenerator set_namespace."""
-        self.assertRaises(AssertionError, self.gen.set_namespace, 0)
-        self.assertRaises(AssertionError, self.gen.set_namespace, 1)
-        self.assertRaises(AssertionError, self.gen.set_namespace, None)
+        with self.assertRaises(AssertionError):
+            self.gen.set_namespace(0)
+            self.gen.set_namespace(1)
+            self.gen.set_namespace(None)


 class TestPropertyGenerator(TestCase):
@@ -785,9 +791,10 @@
         self.gen = api.PageGenerator(site=self.site,
                                      generator='links',
                                      parameters={'titles': 'test'})
-        self.assertRaises(AssertionError, self.gen.set_namespace, 0)
-        self.assertRaises(AssertionError, self.gen.set_namespace, 1)
-        self.assertRaises(AssertionError, self.gen.set_namespace, None)
+        with self.assertRaises(AssertionError):
+            self.gen.set_namespace(0)
+            self.gen.set_namespace(1)
+            self.gen.set_namespace(None)

     def test_namespace_param_is_not_settable(self):
         """Test ListGenerator support_namespace."""
@@ -798,12 +805,14 @@
     def test_namespace_none(self):
         """Test ListGenerator set_namespace with None."""
         self.gen = api.ListGenerator(listaction='alllinks', site=self.site)
-        self.assertRaises(TypeError, self.gen.set_namespace, None)
+        with self.assertRaises(TypeError):
+            self.gen.set_namespace(None)

     def test_namespace_non_multi(self):
         """Test ListGenerator set_namespace when non multi."""
         self.gen = api.ListGenerator(listaction='alllinks', site=self.site)
-        self.assertRaises(TypeError, self.gen.set_namespace, [0, 1])
+        with self.assertRaises(TypeError):
+            self.gen.set_namespace([0, 1])
         self.assertIsNone(self.gen.set_namespace(0))

     def test_namespace_multi(self):
@@ -816,7 +825,8 @@
         """Test ListGenerator set_namespace when resolve fails."""
         self.gen = api.ListGenerator(listaction='allpages', site=self.site)
         self.assertTrue(self.gen.support_namespace())
-        self.assertRaises(KeyError, self.gen.set_namespace, 10000)
+        with self.assertRaises(KeyError):
+            self.gen.set_namespace(10000)


 class TestDryListGenerator(TestCase):
@@ -841,7 +851,8 @@

     def test_namespace_none(self):
         """Test ListGenerator set_namespace with None."""
-        self.assertRaises(TypeError, self.gen.set_namespace, None)
+        with self.assertRaises(TypeError):
+            self.gen.set_namespace(None)

     def test_namespace_zero(self):
         """Test ListGenerator set_namespace with 0."""
@@ -964,9 +975,11 @@
         """Test the query with a username which does not exist."""
         self.site._username = 'Not registered username'
         req = api.Request(site=self.site, parameters={'action': 'query'})
-        self.assertRaises(pywikibot.NoUsername, req.submit)
+        with self.assertRaises(pywikibot.NoUsername):
+            req.submit()
         # FIXME: T100965
-        self.assertRaises(api.APIError, req.submit)
+        with self.assertRaises(api.APIError):
+            req.submit()
         warning.assert_called_with(
             'API error readapidenied: '
             'You need read permission to use this module.')
@@ -987,9 +1000,11 @@
         """Test the query without a username."""
         self.site._username = None
         req = api.Request(site=self.site, parameters={'action': 'query'})
-        self.assertRaises(pywikibot.NoUsername, req.submit)
+        with self.assertRaises(pywikibot.NoUsername):
+            req.submit()
         # FIXME: T100965
-        self.assertRaises(api.APIError, req.submit)
+        with self.assertRaises(api.APIError):
+            req.submit()
         warning.assert_called_with(
             'API error readapidenied: '
             'You need read permission to use this module.')
diff --git a/tests/archivebot_tests.py b/tests/archivebot_tests.py
index e003172..0511929 100644
--- a/tests/archivebot_tests.py
+++ b/tests/archivebot_tests.py
@@ -94,10 +94,10 @@
         self.assertEqual(archivebot.str2time('7d'), archivebot.str2time('1w'))
         self.assertEqual(archivebot.str2time('3y'), timedelta(1096))
         self.assertEqual(archivebot.str2time('3y', date), timedelta(1095))
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2time,
-                          '4000@')
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2time,
-                          '$1')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2time('4000@')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2time('$1')

     def test_checkstr(self):
         """Test for extracting key and duration from shorthand notation."""
@@ -122,16 +122,16 @@

     def test_str2size_failures(self):
         """Test for rejecting of invalid shorthand notation of sizes."""
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2size,
-                          '4 KK')
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2size,
-                          'K4')
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2size,
-                          '4X')
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2size,
-                          '1 234 56')
-        self.assertRaises(archivebot.MalformedConfigError, archivebot.str2size,
-                          '1234 567')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2size('4 KK')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2size('K4')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2size('4X')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2size('1 234 56')
+        with self.assertRaises(archivebot.MalformedConfigError):
+            archivebot.str2size('1234 567')


 class TestArchiveBot(TestCase):
diff --git a/tests/bot_tests.py b/tests/bot_tests.py
index 58f48db..d9cda8c 100644
--- a/tests/bot_tests.py
+++ b/tests/bot_tests.py
@@ -170,8 +170,8 @@
                 self.assertIs(exc, exception)
             else:
                 self.assertIsNone(exc)
-                self.assertRaisesRegex(StopIteration, '^$', next,
-                                       self._page_iter)
+                with self.assertRaisesRegex(StopIteration, '^$'):
+                    next(self._page_iter)
         return exit


@@ -274,7 +274,8 @@
                                       pywikibot.Page(self.de, 'Page 3')],
                                      post_treat)
         self.bot.exit = self._exit(2, exception=ValueError)
-        self.assertRaisesRegex(ValueError, 'Whatever', self.bot.run)
+        with self.assertRaisesRegex(ValueError, 'Whatever'):
+            self.bot.run()

     def test_Bot_KeyboardInterrupt(self):
         """Test normal Bot class with a KeyboardInterrupt in treat."""
diff --git a/tests/category_tests.py b/tests/category_tests.py
index f250e71..152de60 100644
--- a/tests/category_tests.py
+++ b/tests/category_tests.py
@@ -30,8 +30,8 @@
     def test_init(self):
         """Test the category's __init__ for one condition that can't be dry."""
         site = self.get_site()
-        self.assertRaisesRegex(ValueError, self.NOCATEGORYNAMESPACE_RE,
-                               pywikibot.Category, site, 'Wikipedia:Test')
+        with self.assertRaisesRegex(ValueError, self.NOCATEGORYNAMESPACE_RE):
+            pywikibot.Category(site, 'Wikipedia:Test')

     def test_is_empty(self):
         """Test if category is empty or not."""
@@ -155,9 +155,9 @@
         self.assertEqual(tgt, cat2)

         # Raise exception if target is fetched for non Category redirects.
-        self.assertRaisesRegex(pywikibot.IsNotRedirectPage,
-                               self.NOREDIRECTPAGE_RE,
-                               cat2.getCategoryRedirectTarget)
+        with self.assertRaisesRegex(pywikibot.IsNotRedirectPage,
+                                    self.NOREDIRECTPAGE_RE):
+            cat2.getCategoryRedirectTarget()


 class TestCategoryDryObject(TestCase):
@@ -190,8 +190,8 @@
         self.assertTrue(cat_dup_ns.title(with_ns=False), 'Page:Foo')
         self.assertTrue(cat_dup_ns.namespace(), 14)

-        self.assertRaisesRegex(ValueError, self.NOCATEGORYNAMESPACE_RE,
-                               pywikibot.Category, site, 'Talk:Foo')
+        with self.assertRaisesRegex(ValueError, self.NOCATEGORYNAMESPACE_RE):
+            pywikibot.Category(site, 'Talk:Foo')

     def test_section(self):
         """Test the section method."""

--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/657287
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: I091828126064f3e4a47f0ad6671d202a9a969da3
Gerrit-Change-Number: 657287
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