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]