def test_process(self): session = Session(session_uid="vettel2021") session.process_lap_in_f1laps = MagicMock() packet = get_packet_mock() packet.classificationData = [ MagicMock(position=2, resultStatus=3, points=21) ] session = FinalClassificationPacket().process(packet, session) self.assertEqual(session.finish_position, 2) self.assertEqual(session.result_status, 3) self.assertEqual(session.points, 21) session.process_lap_in_f1laps.assert_called_with()
def test_lap_new_with_old_without_sector_2(self): session = Session(session_uid="vettel2021") session.lap_number_current = 1 session.lap_list = { 1: { "sector_1_time_ms": 0, "sector_2_time_ms": 0, "sector_3_time_ms": 30002, "lap_number": 1, "car_race_position": 1, "pit_status": 1, 'is_valid': True } } session.process_lap_in_f1laps = MagicMock() packet = get_packet_mock() packet.lapData = [ MagicMock(currentLapNum=2, currentLapTime=80, sector1TimeInMS=10002, sector2TimeInMS=20002, pitStatus=2, carPosition=4, lastLapTime=30.002) ] session = LapPacket().process(packet, session) self.assertEqual( session.lap_list, { 1: { "sector_1_time_ms": 0, "sector_2_time_ms": 0, "sector_3_time_ms": 30002, "lap_number": 1, "car_race_position": 1, "pit_status": 1, 'is_valid': True }, 2: { 'sector_1_time_ms': 10002, 'sector_2_time_ms': 20002, 'sector_3_time_ms': 49996, 'lap_number': 2, 'car_race_position': 4, 'pit_status': 2, 'is_valid': True } }) self.assertEqual(session.lap_number_current, 2) session.process_lap_in_f1laps.assert_not_called()
class SessionAPITests(TestCase): def setUp(self): self.session = Session(session_uid="vettel2021") self.session.team_id = 1 self.session.track_id = 5 self.session.lap_number_current = 2 self.session.lap_list = { 1: { "sector_1_time_ms": 10001, "sector_2_time_ms": 20001, "sector_3_time_ms": 30001, "lap_number": 1, "car_race_position": 1, "pit_status": 0 } } @patch('receiver.f12020.session.F1LapsAPI.lap_create') def test_single_lap_success(self, mock_lap_create_api): # set session_type to time_trial to test single lap self.session.session_type = 12 mock_lap_create_api.return_value = MagicMock(status_code=201) self.assertEqual(self.session.process_lap_in_f1laps(1), True) @patch('receiver.f12020.session.F1LapsAPI.lap_create') def test_single_lap_fail(self, mock_lap_create_api): # set session_type to time_trial to test single lap self.session.session_type = 12 mock_lap_create_api.return_value = MagicMock( status_code=404, content=json.dumps({"error": "it didnt work"})) self.assertEqual(self.session.process_lap_in_f1laps(1), False) @patch('receiver.f12020.session.F1LapsAPI.session_create') def test_session_create_success(self, mock_session_create_api): # set session_type to race to test session self.session.session_type = 10 # make sure we have no f1laps id in the session yet self.session.f1_laps_session_id = None mock_session_create_api.return_value = MagicMock( status_code=201, content=json.dumps({"id": "astonmartin4tw"})) self.assertEqual(self.session.process_lap_in_f1laps(1), True) self.assertEqual(self.session.f1_laps_session_id, "astonmartin4tw") @patch('receiver.f12020.session.F1LapsAPI.session_update') def test_session_update_success(self, mock_session_update_api): # set session_type to race to test session self.session.session_type = 10 # make sure we have a f1laps id in the session self.session.f1_laps_session_id = "astonmartin4tw" mock_session_update_api.return_value = MagicMock(status_code=200) self.assertEqual(self.session.process_lap_in_f1laps(1), True) @patch('receiver.f12020.session.F1LapsAPI.session_update') def test_session_update_error(self, mock_session_update_api): # set session_type to race to test session self.session.session_type = 10 # make sure we have a f1laps id in the session self.session.f1_laps_session_id = "astonmartin4tw" mock_session_update_api.return_value = MagicMock( status_code=404, content=json.dumps({"error": "it didnt work"})) self.assertEqual(self.session.process_lap_in_f1laps(1), False) @patch('receiver.f12020.session.F1LapsAPI.session_update') @patch('receiver.f12020.session.F1LapsAPI.session_list') @patch('receiver.f12020.session.F1LapsAPI.session_create') def test_session_create_error_list_success_update(self, mock_session_create_api, mock_session_list_api, mock_session_update_api): # set session_type to race to test session self.session.session_type = 10 # make sure we don't have a f1laps id in the session yet self.session.f1_laps_session_id = None mock_session_create_api.return_value = MagicMock( status_code=400, content=json.dumps({"error": "already exists"})) mock_session_list_api.return_value = MagicMock( status_code=200, content=json.dumps({"results": [{ "id": "astonmartin4tw" }]})) mock_session_update_api.return_value = MagicMock(status_code=200) self.assertEqual(self.session.process_lap_in_f1laps(1), True) self.assertEqual(self.session.f1_laps_session_id, "astonmartin4tw") @patch('receiver.f12020.session.F1LapsAPI.session_list') @patch('receiver.f12020.session.F1LapsAPI.session_create') def test_session_create_error_list_error(self, mock_session_create_api, mock_session_list_api): # set session_type to race to test session self.session.session_type = 10 # make sure we don't have a f1laps id in the session yet self.session.f1_laps_session_id = None mock_session_create_api.return_value = MagicMock( status_code=400, content=json.dumps({"error": "already exists"})) mock_session_list_api.return_value = MagicMock(status_code=200, content=json.dumps( {"results": []})) self.assertEqual(self.session.process_lap_in_f1laps(1), False) @patch('receiver.f12020.session.F1LapsAPI.session_create') def test_session_create_error_401(self, mock_session_create_api): # set session_type to race to test session self.session.session_type = 10 # make sure we don't have a f1laps id in the session yet self.session.f1_laps_session_id = None mock_session_create_api.return_value = MagicMock( status_code=401, content=json.dumps({"error": "invalid token"})) self.assertEqual(self.session.process_lap_in_f1laps(1), False)