def create_simulation_scene_event(simulation_scene_id: int, road_segment_id: int, road_condition_type_id: int, value: int, response_plan: str) -> SimulationSceneEvent: simulation_scene = get_simulation_scene_with_id(simulation_scene_id) road_segment = get_road_segment_with_id(road_segment_id) road_condition_type = get_road_condition_type_with_id( road_condition_type_id) simulation_scene_event = SimulationSceneEvent( simulation_scene=simulation_scene, road_segment=road_segment, road_condition_type=road_condition_type, value=value, response_plan=response_plan) simulation_scene_event.save() return simulation_scene_event
def add_simulation_scenes_events_to_simulation_scene( simulation_scene, simulation_scene_events: graphene.List(SimulationSceneEventInputObject)): """ Creates the simulation scene events for the simulation scene :param simulation_scene: The simulation scene the events belong to :param simulation_scene_events: The list of scene events :return: """ for se in simulation_scene_events: road_segment = get_road_segment_with_id(se.road_segment_id) road_condition_type = get_road_condition_type_with_id( se.road_condition_type_id) SimulationSceneEvent(simulation_scene=simulation_scene, road_segment=road_segment, road_condition_type=road_condition_type, value=se.value, response_plan=se.response_plan).save()
def create_road_condition(name: str, date: RoadConditionDateInputObject, value: str, road_condition_type_id: int, road_condition_action_ids: graphene.List( graphene.Int), parent_rc: int, parent_rs: int) -> RoadCondition: road_condition_type = get_road_condition_type_with_id( road_condition_type_id) road_condition = RoadCondition(name=name, value=value, road_condition_type=road_condition_type) if parent_rs or parent_rc: road_condition.save() update_parents(road_condition, parent_rs, parent_rc) replace_road_condition_actions(road_condition, road_condition_action_ids) create_road_condition_date(road_condition, date) return road_condition else: raise NoParentDefinedForRoadCondition()
def update_road_condition( road_condition_id: int, name: str, date: RoadConditionDateInputObject, value: str, road_condition_type_id: int, parent_rs: int, parent_rc: int, road_condition_action_ids: graphene.List(graphene.Int) ) -> RoadCondition: road_condition = get_road_condition_with_id(road_condition_id) road_condition.name = name if name else road_condition.name road_condition.value = value if value else road_condition.value if road_condition_type_id: road_condition.road_condition_type = get_road_condition_type_with_id( road_condition_type_id) if date: update_road_condition_date(road_condition, date) road_condition.save() if parent_rs or parent_rc: update_parents(road_condition, parent_rs, parent_rc) if road_condition_action_ids: replace_road_condition_actions(road_condition, road_condition_action_ids) return road_condition
def update_simulation_scene_event(simulation_scene_event_id: int, road_segment_id: int, road_condition_type_id: int, value: int, response_plan: str) -> SimulationSceneEvent: simulation_scene_event = get_simulation_scene_event_with_id( simulation_scene_event_id) if road_segment_id: simulation_scene_event.road_segment = get_road_segment_with_id( road_segment_id) if road_condition_type_id: simulation_scene_event.road_condition_type = \ get_road_condition_type_with_id(road_condition_type_id) simulation_scene_event.value = value \ if value else simulation_scene_event.value if response_plan: simulation_scene_event.response_plan = response_plan simulation_scene_event.save() return simulation_scene_event
def test_get_condition_type_id_exception(self): with self.assertRaises(ObjectNotFoundException): get_road_condition_type_with_id(-1)
def test_has_and_get_condition_type_id(self): condition_type = self.condition_types[0] getter_condition_type = get_road_condition_type_with_id( condition_type.id) self.assertEqual(condition_type, getter_condition_type) self.assertTrue(has_road_condition_type_with_id(condition_type.id))