jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/649572 )
Change subject: [tests] flow_edit_tests: use contextmanager to setup/restore subtests ......................................................................
[tests] flow_edit_tests: use contextmanager to setup/restore subtests
Change-Id: I47e4cd45d1d607a7df9734a4192c9564b7d7ec52 --- M tests/flow_edit_tests.py 1 file changed, 21 insertions(+), 25 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/tests/flow_edit_tests.py b/tests/flow_edit_tests.py index 0b06191..43e62d9 100644 --- a/tests/flow_edit_tests.py +++ b/tests/flow_edit_tests.py @@ -5,7 +5,7 @@ # # Distributed under the terms of the MIT license. # -from contextlib import suppress +from contextlib import contextmanager, suppress
from pywikibot.exceptions import LockedPage from pywikibot.flow import Board, Topic, Post @@ -221,6 +221,20 @@ self.topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh') self.post = Post(self.topic, 'sq1qvoig1az8w7cd')
+ @contextmanager + def restored(self, flow): + """Setup and restore test.""" + # Setup + if flow.is_moderated: + flow.restore(MODERATION_REASON) + self.assertFalse(flow.is_moderated) + try: + yield flow + finally: + # Restore + flow.restore(MODERATION_REASON) + self.assertFalse(flow.is_moderated) +
class TestFlowHide(FlowTests):
@@ -229,17 +243,11 @@ def test_hide(self): """Hide and restore a test topic and post.""" for flow in (self.topic, self.post): - with self.subTest(flow=flow.__class__.__name__): - # Setup - if flow.is_moderated: - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated) + with self.subTest(flow=flow.__class__.__name__), \ + self.restored(flow): # Hide flow.hide(MODERATION_REASON) self.assertTrue(flow.is_moderated) - # Restore - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated)
class TestFlowSysop(FlowTests): @@ -251,32 +259,20 @@ def test_delete(self): """Delete and restore a test topic and post.""" for flow in (self.topic, self.post): - with self.subTest(flow=flow.__class__.__name__): - # Setup - if flow.is_moderated: - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated) + with self.subTest(flow=flow.__class__.__name__), \ + self.restored(flow): # Delete flow.delete_mod(MODERATION_REASON) self.assertTrue(flow.is_moderated) - # Restore - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated)
def test_suppress(self): """Suppress and restore a test topic and post.""" for flow in (self.topic, self.post): - with self.subTest(flow=flow.__class__.__name__): - # Setup - if flow.is_moderated: - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated) + with self.subTest(flow=flow.__class__.__name__), \ + self.restored(flow): # Suppress flow.suppress(MODERATION_REASON) self.assertTrue(flow.is_moderated) - # Restore - flow.restore(MODERATION_REASON) - self.assertFalse(flow.is_moderated)
if __name__ == '__main__': # pragma: no cover
pywikibot-commits@lists.wikimedia.org