jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1178539?usp=email )

Change subject: [tests] Make TestDeletionBot.test_dry dry
......................................................................

[tests] Make TestDeletionBot.test_dry dry

Currently, API calls are required for get_mainpage() and exists().
To avoid this, patch DeletionRobot.skip_page.

- Use unittest.patch to patch Page.delete, Page.undelete, and
  DeletionRobot.skip_page.
- Revert previous change and don’t use get_mainpage().
- Rename self parameter in patched functions to avoid confusion.

Bug: T401039
Change-Id: I7dec85323a3537c0c67eb85913d2b57c89974c81
---
M tests/deletionbot_tests.py
1 file changed, 17 insertions(+), 17 deletions(-)

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




diff --git a/tests/deletionbot_tests.py b/tests/deletionbot_tests.py
index f7274f5..f44ece5 100755
--- a/tests/deletionbot_tests.py
+++ b/tests/deletionbot_tests.py
@@ -109,41 +109,41 @@

     def setUp(self) -> None:
         """Set up unit test."""
-        self._original_delete = pywikibot.Page.delete
-        self._original_undelete = pywikibot.Page.undelete
-        pywikibot.Page.delete = delete_dummy
-        pywikibot.Page.undelete = undelete_dummy
         super().setUp()

-    def tearDown(self) -> None:
-        """Tear down unit test."""
-        pywikibot.Page.delete = self._original_delete
-        pywikibot.Page.undelete = self._original_undelete
-        super().tearDown()
+        patches = (
+            patch.object(pywikibot.Page, 'delete', delete_dummy),
+            patch.object(pywikibot.Page, 'undelete', undelete_dummy),
+            patch.object(delete.DeletionRobot, 'skip_page',
+                         lambda inst, page: False)
+        )
+        for p in patches:
+            self.addCleanup(p.stop)
+            p.start()

     def test_dry(self) -> None:
         """Test dry run of bot."""
-        main = self.get_mainpage().title()
         with empty_sites():
-            delete.main(f'-page:{main}', '-always', '-summary:foo')
+            delete.main('-page:Main Page', '-always', '-summary:foo')
             self.assertEqual(self.delete_args,
-                             [f'[[{main}]]', 'foo', False, True, True])
+                             ['[[Main Page]]', 'foo', False, True, True])
         with empty_sites():
             delete.main(
                 '-page:FoooOoOooO', '-always', '-summary:foo', '-undelete')
             self.assertEqual(self.undelete_args, ['[[FoooOoOooO]]', 'foo'])


-def delete_dummy(self, reason, prompt, mark, automatic_quit) -> int:
+def delete_dummy(page_self, reason, prompt, mark, automatic_quit, *,
+                 deletetalk=False) -> int:
     """Dummy delete method."""
-    TestDeletionBot.delete_args = [self.title(as_link=True), reason, prompt,
-                                   mark, automatic_quit]
+    TestDeletionBot.delete_args = [page_self.title(as_link=True), reason,
+                                   prompt, mark, automatic_quit]
     return 0


-def undelete_dummy(self, reason) -> None:
+def undelete_dummy(page_self, reason) -> None:
     """Dummy undelete method."""
-    TestDeletionBot.undelete_args = [self.title(as_link=True), reason]
+    TestDeletionBot.undelete_args = [page_self.title(as_link=True), reason]


 if __name__ == '__main__':

-- 
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1178539?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I7dec85323a3537c0c67eb85913d2b57c89974c81
Gerrit-Change-Number: 1178539
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to