def test_decider_current_action_pumpoff_height_in_target_and_margin_range( self): decider = Decider(target_height=5000, margin=1000) pump = Pump('127.0.0.1', 8000) sensor = Sensor('127.0.0.1', 8000) controller = Controller(sensor, pump, decider) #equal to target + margin case result = decider.decide(current_height=4000, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_OFF) #equal to target + margin case result = decider.decide(current_height=4000, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_OFF) #in the range of (target - margin to target + margin) result = decider.decide(current_height=5800, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_OFF) #in the range of (target - margin to target + margin) result = decider.decide(current_height=4200, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_OFF)
def setUp(self): """ This method does a setup for integration testing raterregulation """ self.pump = Pump('127.0.0.1', 1000) self.sensor = Sensor('127.0.0.2', 2000) self.decider = Decider(100, 0.05) self.controller = Controller(self.sensor, self.pump, self.decider)
def setUp(self): """ Create instance for testing """ self.decider = Decider(100, 0.05) self.pump = Pump('127.0.0.1', 8000) self.sensor = Sensor('127.0.0.1', 8000) self.controller = Controller(self.sensor, self.pump, self.decider)
def setUp(self): """ Instantiates the pump, decider, sensor and controller classes """ self.pump = Pump('127.0.0.1', 514) self.sensor = Sensor('127.0.0.1', 514) self.decider = Decider(100, .01) self.controller = Controller(self.sensor, self.pump, self.decider)
def setUp(self): """ This method does a setup for unit testing Controller """ self.pump = Pump('127.0.0.1', 1000) self.sensor = Sensor('127.0.0.2', 2000) self.decider = Decider(100, 0.05) self.controller = Controller(self.sensor, self.pump, self.decider)
def test_decider_current_action_pump_off_height_less_than_target(self): decider = Decider(target_height=10000, margin=1000) pump = Pump('127.0.0.1', 8000) sensor = Sensor('127.0.0.1', 8000) controller = Controller(sensor, pump, decider) result = decider.decide(current_height=5000, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_IN)
def setUp(self): self.sensor = Sensor('127.0.0.1', '8001') self.pump = Pump('127.0.0.1', '8000') self.decider = Decider(5, .05) self.new_controller = Controller(self.sensor, self.pump, self.decider) self.actions = { 'PUMP_IN': self.pump.PUMP_IN, 'PUMP_OUT': self.pump.PUMP_OUT, 'PUMP_OFF': self.pump.PUMP_OFF, }
def setUp(self): """ setup :return: """ self.pump = Pump('127.0.0.1', 8000) self.sensor = Sensor('127.1.1.3', 9000) self.decider = Decider(100, 0.05) self.controller = Controller(self.sensor, self.pump, self.decider)
def test_decider_current_action_pumpoff_height_greater_target_and_margin( self): decider = Decider(target_height=1000, margin=200) pump = Pump('127.0.0.1', 8000) sensor = Sensor('127.0.0.1', 8000) controller = Controller(sensor, pump, decider) result = decider.decide(current_height=1250, current_action=Pump.PUMP_OFF, actions=controller.actions) self.assertEqual(result, Pump.PUMP_OUT)
def test_integration_set_pump_state_fail(self): decider = Decider(target_height=3000, margin=500) pump = Pump('127.0.0.1', 8000) sensor = Sensor('127.0.0.1', 8000) pump.set_state = MagicMock(return_value=False) pump.get_state = MagicMock(return_value=Pump.PUMP_OFF) sensor.measure = MagicMock(return_value=3500) controller = Controller(sensor, pump, decider) result = controller.tick() self.assertEqual(result, False)
def test_integration(self): """Method docstring.""" sensor = Sensor(self.address, self.port) pump = Pump(self.address, self.port) decider = Decider(100, .05) controller = Controller(sensor, pump, decider) for level in range(0, 200, 10): for action in controller.actions.values(): sensor.measure = MagicMock(return_value=level) pump.get_state = MagicMock(return_value=action) pump.set_state = MagicMock(return_value=True) controller.tick() pump.set_state = MagicMock(return_value=False) controller.tick()
def test_module(self): """ Tests the functionality of the water regulation classes and methods within those classes """ self.pump = Pump('0.0.0.0', 514) self.sensor = Sensor('0.0.0.0', 514) self.decider = Decider(100,.01) self.control = Controller(self.sensor, self.pump, self.decider) self.pump.get_state = MagicMock(return_value = 0) current_state = self.pump.get_state() self.sensor.measure = MagicMock(return_value = 50) current_height = self.sensor.measure() new_state = self.decider.decide(current_height, current_state, self.control.actions) self.assertEqual(1, new_state)
def test_controller_tick(self): """Tests if, on each call to tick(), the controller object queries each of the sensor, pump, and decider, then sets pump to new state """ sensor = Sensor('127.0.0.1', '514') sensor.measure = MagicMock(return_value=105) pump = Pump('127.0.0.1', '8000') pump.get_state = MagicMock(return_value='PUMP_OFF') pump.set_state = MagicMock(return_value='PUMP_IN') decider = Decider(120, 0.05) controller = Controller(sensor, pump, decider) self.assertTrue(controller.tick())
def setUp(self): """ Set up method for test_controller """ self.sensor = Sensor('127.0.0.1', 8000) self.sensor.measure = MagicMock(return_value=100) self.pump = Pump('127.0.0.1', 8000) self.pump.set_state = MagicMock(return_value=True) self.pump.get_state = MagicMock(return_value=self.pump.PUMP_OFF) self.decider = Decider(100, .10) self.decider.decide = MagicMock(return_value=self.pump.PUMP_OFF) self.controller = Controller(self.sensor, self.pump, self.decider) self.controller.tick() self.actions = { 'PUMP_IN': self.pump.PUMP_IN, 'PUMP_OUT': self.pump.PUMP_OUT, 'PUMP_OFF': self.pump.PUMP_OFF }
def test_all(self): """ Run full test on all components of waterregulation """ pump_address = Pump('127.0.0.1', '2048') sensor_address = Sensor('127.0.0.1', '2048') decider_margins = Decider(100, .10) controller_all = Controller(sensor_address, pump_address, decider_margins) controller_all.pump.set_state = MagicMock(return_value=True) for action in controller_all.actions.values(): for water_level in range(25, 150, 100): # water level (mocked) controller_all.sensor.measure = \ MagicMock(return_value=water_level) # pump state (mocked) controller_all.pump.get_state = MagicMock( return_value=decider_margins.decide( water_level, action, controller_all.actions)) controller_all.tick()
def test_tick(self): """Method docstring.""" pump_address = Pump('127.0.0.1', 8000) sensor_address = Sensor('127.0.0.1', 8000) decider_vals = Decider(100, 5) controller_all = Controller(sensor_address, pump_address, decider_vals) sensor_address.measure = MagicMock(return_value=90) pump_address.get_state = MagicMock(return_value=pump_address.PUMP_OFF) decider_vals.decide_pump_action = MagicMock( return_value=pump_address.PUMP_IN) pump_address.set_state = MagicMock(return_value=True) controller_all.tick() pump_address.get_state = MagicMock(return_value=pump_address.PUMP_IN) controller_all.tick() pump_address.get_state = MagicMock(return_value=pump_address.PUMP_OUT) controller_all.tick() sensor_address.measure.assert_called_with() pump_address.get_state.assert_called_with() pump_address.set_state.assert_called_with(pump_address.PUMP_OFF)
def setUp(self): self.decider = Decider(100, 0.05) self.pump = Pump('127.0.0.1', 8000) self.sensor = Sensor('127.0.0.1', 8000) self.controller = Controller(self.sensor, self.pump, self.decider)
def setUp(self): self.pump = Pump(self.addr, self.port) self.sensor = Sensor(self.addr, self.port) self.decider = Decider(self.target, self.margin) self.controller = Controller(self.sensor, self.pump, self.decider)