def test_nosyNeighbor_randomStrategy_alertHandled(self, print_mock, bip_mock): # set-up random.seed(0) bed_time = "23:30" wake_time = "05:30" neighbor = NosyNeighbor("Laco", bed_time, wake_time) doggo = Doggo("Jake") soundalarm = SoundAlarm() system = SecuritySystem() system.strategy = RandomStrategy() system.registerCreator(neighbor) system.registerHandler(doggo) system.registerHandler(soundalarm) # act neighbor.check_suspicious_activity( "infront of the door", "random visitors", datetime(2021, 1, 25, 22, 30, 20), ) # assert print_mock.assert_called() bip_mock.assert_not_called()
class Camera_EmailerTest(unittest.TestCase): @patch.object(Emailer, "_send_message") def test_cameraEmailer(self, sendMessage_mock): # setup camera = Camera("Camera1", ["outside", "garage"]) emailer = Emailer("*****@*****.**") emailer.alert_recipient = "*****@*****.**" self.system = SecuritySystem() self.system.strategy = EverybodyStrategy() self.system.registerCreator(camera) self.system.registerHandler(emailer) # act camera.detect_movement("human", "outside", datetime(2020, 11, 26, 13, 20)) # assert sendMessage_mock.assert_called_once_with( "*****@*****.**", "Alert", """You've got an Alert! What: human; Where: outside; Level: 2""", )
def test_cameraAlertCreated_doggoAlertIgnored(self, print_mock): # setup camera = Camera("Camera1", ["outside", "garage"]) doggo = Doggo("Jake") system = SecuritySystem() system.strategy = EverybodyStrategy() system.registerCreator(camera) system.registerHandler(doggo) camera.detect_movement("lizzard", "outside", datetime(2020, 11, 26, 13, 20)) print_mock.assert_not_called()
def test_cameraAlertCreated_doggoAlertHandled(self, print_mock): # setup camera = Camera("Camera1", ["outside", "garage"]) doggo = Doggo("Jake") system = SecuritySystem() system.strategy = EverybodyStrategy() system.registerCreator(camera) system.registerHandler(doggo) # act camera.detect_movement("human", "outside", datetime(2020, 11, 26, 13, 20)) # assert print_mock.assert_called_once_with("Jake: growl!")
def test_cameraAlertCreated_doggoAsSecondHandlerAlertIgnored( self, print_mock): # setup camera = Camera("Camera1", ["outside", "garage"]) doggo = Doggo("Jake") soundalarm = SoundAlarm() system = SecuritySystem() system.strategy = OldestFirstStrategy() system.registerCreator(camera) system.registerHandler(soundalarm) system.registerHandler(doggo) # act camera.detect_movement("human", "outside", datetime(2020, 11, 26, 23, 20)) # assert print_mock.assert_not_called()
def test_cameraAlertCreated_soundAsFirstHandlerAlertHandled( self, bip_mock): # setup camera = Camera("Camera1", ["outside", "garage"]) camera.night_mode = True doggo = Doggo("Jake") soundalarm = SoundAlarm() system = SecuritySystem() system.strategy = OldestFirstStrategy() system.registerCreator(camera) system.registerHandler(soundalarm) system.registerHandler(doggo) # act camera.detect_movement("human", "outside", datetime(2020, 11, 26, 23, 20)) # assert bip_mock.assert_called()
class SecuritySystemTest(unittest.TestCase): def setUp(self): self.security = SecuritySystem() def test_registerHandler_handler_isInHandlers(self): handler_mock = Mock(name="handler", spec=AlertHandler) self.security.registerHandler(handler_mock) self.assertIn(handler_mock, self.security.handlers) def test_registerHandler_integer_raisesTypeError(self): with self.assertRaises(TypeError): self.security.registerHandler(5) # @patch.object(Doggo, "handle_alert") # def test_alertCreated_doggoRegistred_doggoHandleAlert(self, handle_alert_mock): # doggo = Doggo("Jake") # self.security.registerHandler(doggo) # self.security.createAlert("outside", "human", 3) # handle_alert_mock.assert_called_once() # TODO test wheter security system calls strategy using manually made mocks def test_registerCreator_camera_isInCreator(self): #setup camera_mock = Camera("Testcamera", ["outside"]) #act self.security.registerCreator(camera_mock) #assert self.assertIn(camera_mock, self.security.creators) self.assertEqual(camera_mock.security_system, self.security) def test_registerCreator_integer_raisesTypeError(self): with self.assertRaises(TypeError): self.security.registerCreator(5)