From 4b964b12dc937bb9ea347329694f7a06c68416b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Apitzsch?= Date: Sat, 31 Oct 2020 10:45:57 +0100 Subject: [PATCH] Test: No need to check for mock support with Python 3.3+ --- gramps/cli/test/argparser_test.py | 14 +------ gramps/cli/test/user_test.py | 38 ++----------------- gramps/gen/utils/test/grampslocale_test.py | 30 ++++----------- gramps/gui/editors/test/editreference_test.py | 11 +----- gramps/gui/test/user_test.py | 15 +------- 5 files changed, 14 insertions(+), 94 deletions(-) diff --git a/gramps/cli/test/argparser_test.py b/gramps/cli/test/argparser_test.py index 734fc3b51..5a9e29cc0 100644 --- a/gramps/cli/test/argparser_test.py +++ b/gramps/cli/test/argparser_test.py @@ -22,20 +22,8 @@ """ Unittest for argparser.py """ import unittest +from unittest.mock import Mock from ..argparser import ArgParser -import sys - -try: - if sys.version_info < (3,3): - from mock import Mock - else: - from unittest.mock import Mock - - MOCKING = True - -except: - MOCKING = False - print ("Mocking disabled", sys.exc_info()[0:2]) class TestArgParser(unittest.TestCase): def setUp(self): diff --git a/gramps/cli/test/user_test.py b/gramps/cli/test/user_test.py index e8bc1f025..a72e82f67 100644 --- a/gramps/cli/test/user_test.py +++ b/gramps/cli/test/user_test.py @@ -22,21 +22,10 @@ """ Unittest for user.py """ import unittest +from unittest.mock import Mock, patch from .. import user import sys -try: - if sys.version_info < (3,3): - from mock import Mock, patch - else: - from unittest.mock import Mock, patch - - MOCKING = True - -except: - MOCKING = False - print ("Mocking disabled", sys.exc_info()[0:2]) - class TestUser: TITLE = "Testing prompt" MSG = "Choices are hard. Nevertheless, please choose!" @@ -46,10 +35,9 @@ class TestUser: class TestUser_prompt(unittest.TestCase): def setUp(self): self.real_user = user.User() - if MOCKING: - self.user = user.User() - self.user._fileout = Mock(spec=sys.stderr) - self.user._input = Mock(spec=input) + self.user = user.User() + self.user._fileout = Mock(spec=sys.stderr) + self.user._input = Mock(spec=input) def test_default_fileout_has_write(self): assert hasattr(self.real_user._fileout, 'write') @@ -57,7 +45,6 @@ class TestUser_prompt(unittest.TestCase): def test_default_input(self): assert self.real_user._input.__name__.endswith('input') - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_returns_True_if_ACCEPT_entered(self): self.user._input.configure_mock(return_value = TestUser.ACCEPT) assert self.user.prompt( @@ -65,7 +52,6 @@ class TestUser_prompt(unittest.TestCase): ), "True expected!" self.user._input.assert_called_once_with() - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_returns_False_if_REJECT_entered(self): self.user._input.configure_mock(return_value = TestUser.REJECT) assert not self.user.prompt( @@ -87,37 +73,24 @@ class TestUser_prompt(unittest.TestCase): "'{}' never printed in prompt: {}".format( text, self.user._fileout.method_calls)) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_contains_title_text(self): self.assert_prompt_contains_text(TestUser.TITLE) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_contains_msg_text(self): self.assert_prompt_contains_text(TestUser.MSG) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_contains_accept_text(self): self.assert_prompt_contains_text(TestUser.ACCEPT) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_contains_reject_text(self): self.assert_prompt_contains_text(TestUser.REJECT) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_strips_underscore_in_accept(self): self.assert_prompt_contains_text("accepT", accept="accep_T") - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_strips_underscore_in_reject(self): self.assert_prompt_contains_text("reJect", reject="re_Ject") - if not MOCKING: #don't use SKIP, to avoid counting a skipped test - def test_manual_run(self): - b = self.real_user.prompt( - TestUser.TITLE, TestUser.MSG, TestUser.ACCEPT, TestUser.REJECT) - print ("Returned: {}".format(b)) - - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_auto_accept_accepts_without_prompting(self): u = user.User(auto_accept=True) u._fileout = Mock(spec=sys.stderr) @@ -126,7 +99,6 @@ class TestUser_prompt(unittest.TestCase): ), "True expected!" assert len(u._fileout.method_calls) == 0, list(u._fileout.method_calls) - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_EOFError_in_prompt_caught_as_False(self): self.user._input.configure_mock( side_effect = EOFError, @@ -136,7 +108,6 @@ class TestUser_prompt(unittest.TestCase): ), "False expected!" self.user._input.assert_called_once_with() -@unittest.skipUnless(MOCKING, "Requires unittest.mock to run") class TestUser_quiet(unittest.TestCase): def setUp(self): self.user = user.User(quiet=True) @@ -152,7 +123,6 @@ class TestUser_quiet(unittest.TestCase): assert len(self.user._fileout.method_calls ) == 0, list(self.user._fileout.method_calls) -@unittest.skipUnless(MOCKING, "Requires unittest.mock to run") class TestUser_progress(unittest.TestCase): def setUp(self): diff --git a/gramps/gen/utils/test/grampslocale_test.py b/gramps/gen/utils/test/grampslocale_test.py index 00e703ddc..e8146289b 100644 --- a/gramps/gen/utils/test/grampslocale_test.py +++ b/gramps/gen/utils/test/grampslocale_test.py @@ -20,19 +20,7 @@ # import unittest -import sys - -try: - if sys.version_info < (3,3): - from mock import Mock - else: - from unittest.mock import Mock - - MOCKING = True - -except: - MOCKING = False - print ("Mocking disabled, some testing skipped", sys.exc_info()[0:2]) +from unittest.mock import Mock class LexGettextTest(unittest.TestCase): SRC_WORD = "Inflect-me" @@ -45,19 +33,15 @@ class LexGettextTest(unittest.TestCase): self.trans = GrampsTranslations() def setup_sgettext_mock(self, msgval_expected): - if MOCKING: - mock = Mock(return_value=msgval_expected) - else: - mock = lambda msgid: msgval_expected + mock = Mock(return_value=msgval_expected) self.trans.sgettext = mock def tearDown(self): - if MOCKING: - try: - self.trans.sgettext.assert_called_once_with( - self.MSGID, self.CONTEXT) - except AttributeError as e: - print ("Apparently the test has never set up the mock: ", e) + try: + self.trans.sgettext.assert_called_once_with( + self.MSGID, self.CONTEXT) + except AttributeError as e: + print ("Apparently the test has never set up the mock: ", e) def testSrcWordOnlyIfNoTranslation(self): self.setup_sgettext_mock(self.SRC_WORD) diff --git a/gramps/gui/editors/test/editreference_test.py b/gramps/gui/editors/test/editreference_test.py index fe799857c..cb1f28767 100644 --- a/gramps/gui/editors/test/editreference_test.py +++ b/gramps/gui/editors/test/editreference_test.py @@ -21,16 +21,8 @@ """ Unittest for editreference.py """ import unittest -import sys +from unittest.mock import Mock, patch import os -try: - if sys.version_info < (3,3): - from mock import Mock, patch - else: - from unittest.mock import Mock, patch - MOCKING = True -except: - MOCKING = False from gramps.gen.lib import (Person, Family, Event, Source, Place, Citation, Repository, Media, Note, Tag) @@ -54,7 +46,6 @@ class MockEditReference(EditReference): class TestEditReference(unittest.TestCase): - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_editreference(self): dbstate = DbState() db = make_database("sqlite") diff --git a/gramps/gui/test/user_test.py b/gramps/gui/test/user_test.py index 0e90b6c69..1afdbb192 100644 --- a/gramps/gui/test/user_test.py +++ b/gramps/gui/test/user_test.py @@ -22,20 +22,8 @@ """ Unittest for user.py """ import unittest +from unittest.mock import Mock, patch from .. import user -import sys - -try: - if sys.version_info < (3,3): - from mock import Mock, patch - else: - from unittest.mock import Mock, patch - - MOCKING = True - -except: - MOCKING = False - print ("Mocking disabled", sys.exc_info()[0:2]) class TestUser: TITLE = "Testing prompt" @@ -47,7 +35,6 @@ class TestUser_prompt(unittest.TestCase): def setUp(self): self.user = user.User() - @unittest.skipUnless(MOCKING, "Requires unittest.mock to run") def test_prompt_runs_QuestionDialog2(self): with patch('gramps.gui.user.QuestionDialog2') as MockQD: self.user.prompt(TestUser.TITLE, TestUser.MSG,