コード例 #1
0
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
コード例 #2
0
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()
コード例 #3
0
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()
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
 def test_get_condition_type_id_exception(self):
     with self.assertRaises(ObjectNotFoundException):
         get_road_condition_type_with_id(-1)
コード例 #7
0
 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))