test_informer.py (6254B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\overview\default\test\test_informer.py 2 from itertoolsext import Bundle 3 from mock import Mock, patch 4 from unittest import main 5 from testsuites.testcases import ClientTestCase 6 import logging 7 logger = logging.getLogger(__name__) 8 logging.basicConfig(level=logging.DEBUG) 9 SHOULD_DISPLAY_LOGS = False 10 11 class OverviewSettings(object): 12 13 def __init__(self): 14 self.overviewID = None 15 self.defaultOverviewID = None 16 self.defaultOverviewInformedOfUpdate = 0 17 18 def set_overview(self, overview_id): 19 self.overviewID = overview_id 20 21 def set_default_overview(self, default_id): 22 self.defaultOverviewID = default_id 23 24 def set_informed_of_update(self, switch_offered): 25 self.defaultOverviewInformedOfUpdate = int(switch_offered) 26 27 def get_overview(self): 28 return self.overviewID 29 30 def get_default_overview(self): 31 return self.defaultOverviewID 32 33 def get_informed_of_update(self): 34 return self.defaultOverviewInformedOfUpdate 35 36 37 class DefaultOverviews(object): 38 39 def __init__(self): 40 self.default_overview_id = None 41 self._should_inform_of_update = None 42 43 def should_inform_of_update(self): 44 return self._should_inform_of_update 45 46 def set_default_overview(self, overview_id): 47 self.default_overview_id = overview_id 48 49 def set_should_inform_of_update(self, should_inform_of_update): 50 self._should_inform_of_update = should_inform_of_update 51 52 53 class UpdaterTestCase(ClientTestCase): 54 55 def _mock_imported_modules(self): 56 self.defaults = DefaultOverviews() 57 self.settings = OverviewSettings() 58 return {'carbonui': Mock(), 59 'carbonui.const': Bundle(ID_YES=1, YESNO=2)} 60 61 def setUp(self): 62 super(UpdaterTestCase, self).setUp() 63 with patch.dict('sys.modules', self._mock_imported_modules()): 64 from eve.client.script.parklife.overview.default.informer import DefaultOverviewUpdateInformer 65 self._should_delay = lambda : False 66 self.updater = DefaultOverviewUpdateInformer(settings=self.settings, defaults=self.defaults, should_delay=self._should_delay) 67 self.updater.is_informing_enabled = Mock(return_value=True) 68 if SHOULD_DISPLAY_LOGS: 69 self.updater._log_debug = lambda text: logger.info(text) 70 else: 71 self.updater._log_debug = Mock() 72 73 def _check_has_informed_in_settings(self): 74 self.assertEqual(self.settings.get_informed_of_update(), 1) 75 76 def _check_has_not_informed_in_settings(self): 77 self.assertEqual(self.settings.get_informed_of_update(), 0) 78 79 def test_inform_when_player_is_existing_user_without_default_who_has_never_been_informed(self): 80 self.defaults.set_default_overview('new_default') 81 self.defaults.set_should_inform_of_update(True) 82 self.settings.set_overview('old_default') 83 self.settings.set_informed_of_update(False) 84 self.updater._inform_of_update = Mock() 85 self.assertTrue(self.updater._should_inform_of_update()) 86 is_done = self.updater.update() 87 self.assertTrue(self.updater._inform_of_update.called) 88 self.assertTrue(is_done) 89 self._check_has_informed_in_settings() 90 91 def test_delay_informing_when_player_is_existing_user_without_default_who_has_never_been_informed_but_in_npe(self): 92 self.defaults.set_default_overview('new_default') 93 self.defaults.set_should_inform_of_update(True) 94 self.settings.set_overview('old_default') 95 self.settings.set_informed_of_update(False) 96 self.updater._inform_of_update = Mock() 97 self.updater._should_delay = Mock(return_value=True) 98 self.assertTrue(self.updater._should_inform_of_update()) 99 is_done = self.updater.update() 100 self.assertFalse(self.updater._inform_of_update.called) 101 self.assertFalse(is_done) 102 self._check_has_not_informed_in_settings() 103 104 def test_do_nothing_when_player_already_has_the_latest_default(self): 105 self.defaults.set_default_overview('new_default') 106 self.defaults.set_should_inform_of_update(True) 107 self.settings.set_overview('new_default') 108 self.settings.set_informed_of_update(True) 109 self.updater._inform_of_update = Mock() 110 self.assertFalse(self.updater._should_inform_of_update()) 111 is_done = self.updater.update() 112 self.assertFalse(self.updater._inform_of_update.called) 113 self.assertTrue(is_done) 114 115 def test_do_nothing_when_player_already_has_the_latest_default_even_if_he_has_never_been_informed(self): 116 self.defaults.set_default_overview('new_default') 117 self.defaults.set_should_inform_of_update(True) 118 self.settings.set_overview('new_default') 119 self.settings.set_informed_of_update(False) 120 self.updater._inform_of_update = Mock() 121 self.assertFalse(self.updater._should_inform_of_update()) 122 is_done = self.updater.update() 123 self.assertFalse(self.updater._inform_of_update.called) 124 self.assertTrue(is_done) 125 126 def test_do_nothing_when_this_overview_does_not_require_informing(self): 127 self.defaults.set_default_overview('new_default') 128 self.defaults.set_should_inform_of_update(False) 129 self.settings.set_overview('old_default') 130 self.settings.set_informed_of_update(False) 131 self.updater._inform_of_update = Mock() 132 self.assertFalse(self.updater._should_inform_of_update()) 133 is_done = self.updater.update() 134 self.assertFalse(self.updater._inform_of_update.called) 135 self.assertTrue(is_done) 136 137 def test_do_nothing_when_informing_is_disabled(self): 138 self.defaults.set_default_overview('new_default') 139 self.defaults.set_should_inform_of_update(False) 140 self.settings.set_overview('old_default') 141 self.settings.set_informed_of_update(False) 142 self.updater._is_informing_enabled = False 143 self.updater._inform_of_update = Mock() 144 is_done = self.updater.update() 145 self.assertFalse(self.updater._inform_of_update.called) 146 self.assertTrue(is_done) 147 148 149 if __name__ == '__main__': 150 main()