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

Change subject: [IMPR] Simplify flow_edit_tests and reduce code duplication
......................................................................

[IMPR] Simplify flow_edit_tests and reduce code duplication

- add FlowTests class for test setUp
- use subTest for Topic and Post tests
- reorder tests

Change-Id: I1e7b90662fad2126530d9a680dd204529379b97f
---
M tests/flow_edit_tests.py
1 file changed, 73 insertions(+), 122 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 d2cf3ba..9a8cd01 100644
--- a/tests/flow_edit_tests.py
+++ b/tests/flow_edit_tests.py
@@ -182,128 +182,6 @@
         self.assertFalse(topic.is_locked)


-class TestFlowHide(TestCase):
-
-    """Hiding topics and posts."""
-
-    family = 'wikipedia'
-    code = 'test'
-
-    user = True
-    write = True
-
-    def test_hide_topic(self):
-        """Hide and restore a test topic."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        if topic.is_moderated:
-            topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-        # Hide
-        topic.hide(MODERATION_REASON)
-        self.assertTrue(topic.is_moderated)
-        # Restore
-        topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-
-    def test_hide_post(self):
-        """Hide and restore a test post."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        post = Post(topic, 'sq1qvoig1az8w7cd')
-        if post.is_moderated:
-            post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-        # Hide
-        post.hide(MODERATION_REASON)
-        self.assertTrue(post.is_moderated)
-        # Restore
-        post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-
-
-class TestFlowDelete(TestCase):
-
-    """Deleting topics and posts."""
-
-    family = 'wikipedia'
-    code = 'test'
-
-    user = True
-    write = True
-    sysop = True
-
-    def test_delete_topic(self):
-        """Delete and restore a test topic."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        if topic.is_moderated:
-            topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-        # Delete
-        topic.delete_mod(MODERATION_REASON)
-        self.assertTrue(topic.is_moderated)
-        # Restore
-        topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-
-    def test_delete_post(self):
-        """Delete and restore a test post."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        post = Post(topic, 'sq1qvoig1az8w7cd')
-        if post.is_moderated:
-            post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-        # Delete
-        post.delete(MODERATION_REASON)
-        self.assertTrue(post.is_moderated)
-        # Restore
-        post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-
-
-class TestFlowSuppress(TestCase):
-
-    """Suppressing topics and posts."""
-
-    family = 'wikipedia'
-    code = 'test'
-
-    user = True
-    write = True
-    sysop = True
-
-    def test_suppress_post(self):
-        """Suppress and restore a test post."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        post = Post(topic, 'sq1qvoig1az8w7cd')
-        if post.is_moderated:
-            post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-        # Suppress
-        post.suppress(MODERATION_REASON)
-        self.assertTrue(post.is_moderated)
-        # Restore
-        post.restore(MODERATION_REASON)
-        self.assertFalse(post.is_moderated)
-
-    def test_suppress_topic(self):
-        """Suppress and restore a test topic."""
-        # Setup
-        topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
-        if topic.is_moderated:
-            topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-        # Suppress
-        topic.suppress(MODERATION_REASON)
-        self.assertTrue(topic.is_moderated)
-        # Restore
-        topic.restore(MODERATION_REASON)
-        self.assertFalse(topic.is_moderated)
-
-
 class TestFlowEditFailure(TestCase):

     """Flow-related edit failure tests."""
@@ -327,6 +205,79 @@
         self.assertRaises(LockedPage, topic_reply.reply, content, 'wikitext')


+class FlowTests(TestCase):
+
+    """Flow tests base class."""
+
+    family = 'wikipedia'
+    code = 'test'
+
+    user = True
+    write = True
+
+    def setUp(self):
+        """Setup tests."""
+        self.topic = Topic(self.site, 'Topic:Sl4svodmrhzmpjjh')
+        self.post = Post(self.topic, 'sq1qvoig1az8w7cd')
+
+
+class TestFlowHide(FlowTests):
+
+    """Hiding topics and posts."""
+
+    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)
+                # Hide
+                flow.hide(MODERATION_REASON)
+                self.assertTrue(flow.is_moderated)
+                # Restore
+                flow.restore(MODERATION_REASON)
+                self.assertFalse(flow.is_moderated)
+
+
+class TestFlowSysop(FlowTests):
+
+    """Deleting and Suppressing topics and posts."""
+
+    sysop = True
+
+    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)
+                # 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)
+                # 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
     with suppress(SystemExit):
         unittest.main()

--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/634466
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: I1e7b90662fad2126530d9a680dd204529379b97f
Gerrit-Change-Number: 634466
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <[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