class EngineUnitTest(unittest.TestCase): def setUp(self): self.settings = MagicMock() def test_shouldReadMotorSettingsFromSettings(self): # given # when self.engine = Engine(self.settings) # then self.settings.getMotor1Address.assert_called_once() self.settings.getMotor2Address.assert_called_once() self.assertIsNotNone(self.engine.motor_1) self.assertIsNotNone(self.engine.motor_2) def test_shouldReadMotorSpeedFactorFromSettings(self): # given # when self.engine = Engine(self.settings) # then self.settings.getMotorSpeedFactor.assert_called_once() def test_shouldMotorsSpeedUsingSpeedFactor(self): # given self.settings.getMotor1Address.return_value = 'a_motor' self.settings.getMotor2Address.return_value = 'another_motor' self.settings.getMotorSpeedFactor.return_value = 123 self.engine = Engine(self.settings) self.engine.motor_1 = MagicMock() self.engine.motor_2 = MagicMock() # when self.engine.setSpeed(65) # then _expected_speed = 65 * 123 self.engine.motor_1.run_forever.assert_called_once_with( speed_sp=_expected_speed) self.engine.motor_2.run_forever.assert_called_once_with( speed_sp=_expected_speed) def test_should_stop_motors_with_coast_when_stop_called(self): # given self.settings.getMotor1Address.return_value = 'a_motor' self.settings.getMotor2Address.return_value = 'another_motor' self.settings.getMotorSpeedFactor.return_value = 123 self.engine = Engine(self.settings) self.engine.motor_1 = MagicMock() self.engine.motor_2 = MagicMock() # when self.engine.stop() # then self.engine.motor_1.stop.assert_called_once_with(stop_action='coast') self.engine.motor_2.stop.assert_called_once_with(stop_action='coast') def test_should_stop_motors_with_brake_when_brake_called(self): # given self.settings.getMotor1Address.return_value = 'a_motor' self.settings.getMotor2Address.return_value = 'another_motor' self.settings.getMotorSpeedFactor.return_value = 123 self.engine = Engine(self.settings) self.engine.motor_1 = MagicMock() self.engine.motor_2 = MagicMock() # when self.engine.brake() # then self.engine.motor_1.stop.assert_called_once_with(stop_action='brake') self.engine.motor_2.stop.assert_called_once_with(stop_action='brake')
from car import Car from carModel import CarModel from gearBox import GearBox from engine import Engine from suspension import Suspension from body import Body from brake import Brake carModel = CarModel("Tesla") gearBox = GearBox(5, 3, "auto") engine = Engine(1.9, 6) suspension = Suspension(3, "Chrome Coated") body = Body(4) brake = Brake("Disc", suspension.wheel) whiteOpel = Car(232424324, 2020, "23434234", gearBox, suspension, brake, body, engine) whiteOpel.turnLeft() whiteOpel.moveBackward() whiteOpel.stop() gearBox.shifDown() gearBox.shiftUp() engine.start() engine.brake()