jenkins-bot has submitted this change and it was merged.
Change subject: Add must_be unit tests
......................................................................
Add must_be unit tests
Change-Id: I4ee61c6e550bb08c3e0f367e4cecafff81c9ad1c
---
M tests/site_tests.py
1 file changed, 52 insertions(+), 0 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 6c93c0c..79db3e2 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -11,6 +11,7 @@
import pywikibot
+from pywikibot.site import must_be
from tests import patch_request, unpatch_request
from utils import PywikibotTestCase, unittest
@@ -1106,6 +1107,57 @@
# TODO test other optional arguments
+class TestMustBe(PywikibotTestCase):
+ """Test cases for the must_be decorator."""
+
+ # Implemented without setUpClass(cls) and global variables as objects
+ # were not completely disposed and recreated but retained 'memory'
+ def setUp(self):
+ self._logged_in_as = None
+
+ def login(self, sysop):
+ # mock call
+ self._logged_in_as = 'sysop' if sysop else 'user'
+
+ def testMockInTest(self):
+ self.assertEqual(self._logged_in_as, None)
+ self.login(True)
+ self.assertEqual(self._logged_in_as, 'sysop')
+
+ testMockInTestReset = testMockInTest
+
+ @must_be('sysop')
+ def call_this_sysop_req_function(self, *args, **kwargs):
+ return args, kwargs
+
+ @must_be('user')
+ def call_this_user_req_function(self, *args, **kwargs):
+ return args, kwargs
+
+ def testMustBeSysop(self):
+ args = (1, 2, 'a', 'b')
+ kwargs = {'i': 'j', 'k': 'l'}
+ retval = self.call_this_sysop_req_function(*args, **kwargs)
+ self.assertEqual(retval[0], args)
+ self.assertEqual(retval[1], kwargs)
+ self.assertEqual(self._logged_in_as, 'sysop')
+
+ def testMustBeUser(self):
+ args = (1, 2, 'a', 'b')
+ kwargs = {'i': 'j', 'k': 'l'}
+ retval = self.call_this_user_req_function(*args, **kwargs)
+ self.assertEqual(retval[0], args)
+ self.assertEqual(retval[1], kwargs)
+ self.assertEqual(self._logged_in_as, 'user')
+
+ def testOverrideUserType(self):
+ args = (1, 2, 'a', 'b')
+ kwargs = {'i': 'j', 'k': 'l'}
+ retval = self.call_this_user_req_function(*args, as_group='sysop',
**kwargs)
+ self.assertEqual(retval[0], args)
+ self.assertEqual(retval[1], kwargs)
+ self.assertEqual(self._logged_in_as, 'sysop')
+
if __name__ == '__main__':
try:
try:
--
To view, visit https://gerrit.wikimedia.org/r/114789
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I4ee61c6e550bb08c3e0f367e4cecafff81c9ad1c
Gerrit-PatchSet: 4
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: Nullzero <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits