class AlarmTest(unittest.TestCase): def setUp(self) -> None: self._mock_sensor = Mock() self._alarm = Alarm(self._mock_sensor) def tearDown(self) -> None: del self._mock_sensor del self._alarm def test_alarm_is_off_by_default(self): self.assertEqual(self._alarm.is_alarm_on, False) def test_value(self): self._mock_sensor.pop_next_pressure_psi_value.return_value = 19 self._alarm.check() self.assertEqual(self._alarm.is_alarm_on, False) self._mock_sensor.pop_next_pressure_psi_value.return_value = 16 self._alarm.check() self.assertEqual(self._alarm.is_alarm_on, True) self._mock_sensor.pop_next_pressure_psi_value.return_value = 19 self._alarm.check() self.assertEqual(self._alarm.is_alarm_on, False) self._mock_sensor.pop_next_pressure_psi_value.return_value = 25 self._alarm.check() self.assertEqual(self._alarm.is_alarm_on, True) self._mock_sensor.pop_next_pressure_psi_value.return_value = 19 self._alarm.check() self.assertEqual(self._alarm.is_alarm_on, False) def test_no_arg(self): with patch("tire_pressure_monitoring.Sensor") as mock_sensor: mock_sensor.return_value = 5 temp_alarm = Alarm() self.assertEqual(temp_alarm._sensor, 5)
def test_do_something(self): alarm = Alarm() alarm.check() alarm.is_alarm_on
def setUp(self): self.sensor = Mock() self.alarm = Alarm(self.sensor) self.HIGH_PRESSURE = 100 self.LOW_PRESSURE = 10 self.NORMAL_PRESSURE = 19
class AlarmTests(unittest.TestCase): def setUp(self): self.sensor = Mock() self.alarm = Alarm(self.sensor) self.HIGH_PRESSURE = 100 self.LOW_PRESSURE = 10 self.NORMAL_PRESSURE = 19 def test_turn_alarm_on_when_sensor_is_over_high_threshold(self): self.sensor.pressure_psi_value.return_value = self.HIGH_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_on() def test_alarm_should_be_off_when_sensor_is_above_low_threshold_but_below_high_threshold( self): self.sensor.pressure_psi_value.return_value = self.NORMAL_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_off() def test_turn_alarm_on_when_sensor_is_below_low_threshold(self): self.sensor.pressure_psi_value.return_value = self.LOW_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_on() def test_alarm_should_stay_on_after_pressure_returns_to_normal(self): self.sensor.pressure_psi_value.return_value = self.LOW_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.return_value = self.NORMAL_PRESSURE self.alarm.check() self.alarm_should_be_on() def alarm_should_be_on(self): eq_(True, self.alarm.is_alarm_on()) def alarm_should_be_off(self): eq_(False, self.alarm.is_alarm_on())
def test_no_arg(self): with patch("tire_pressure_monitoring.Sensor") as mock_sensor: mock_sensor.return_value = 5 temp_alarm = Alarm() self.assertEqual(temp_alarm._sensor, 5)
def setUp(self) -> None: self._mock_sensor = Mock() self._alarm = Alarm(self._mock_sensor)
def test_alarm_is_off_by_default(self): alarm = Alarm() assert not alarm.is_alarm_on
class AlarmTests(unittest.TestCase): def setUp(self): self.sensor = Mock() self.alarm = Alarm(self.sensor) self.HIGH_PRESSURE = 100 self.LOW_PRESSURE = 10 self.NORMAL_PRESSURE = 19 def test_turn_alarm_on_when_sensor_is_over_high_threshold(self): self.sensor.pressure_psi_value.return_value = self.HIGH_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_on() def test_alarm_should_be_off_when_sensor_is_above_low_threshold_but_below_high_threshold(self): self.sensor.pressure_psi_value.return_value = self.NORMAL_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_off() def test_turn_alarm_on_when_sensor_is_below_low_threshold(self): self.sensor.pressure_psi_value.return_value = self.LOW_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.assert_called_once_with() self.alarm_should_be_on() def test_alarm_should_stay_on_after_pressure_returns_to_normal(self): self.sensor.pressure_psi_value.return_value = self.LOW_PRESSURE self.alarm.check() self.sensor.pressure_psi_value.return_value = self.NORMAL_PRESSURE self.alarm.check() self.alarm_should_be_on() def alarm_should_be_on(self): eq_(True, self.alarm.is_alarm_on()) def alarm_should_be_off(self): eq_(False, self.alarm.is_alarm_on())
def create_alarm(self, next_psi_values): alarm = Alarm( self.create_sensor(next_psi_values), LOW_PRESSURE_THRESHOLD, HIGH_PRESSURE_THRESHOLD) return alarm