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 <valhall...@arctus.nl> Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com> Gerrit-Reviewer: Merlijn van Deen <valhall...@arctus.nl> Gerrit-Reviewer: Nullzero <nullzero.f...@gmail.com> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits