예제 #1
0
 def test_update_parent_road_condition_none(self):
     condition = self.conditions[0]
     parent = self.conditions[1]
     create_rc_to_rc([parent], [condition])
     update_parents(condition, None, None)
     updated_parent = get_road_condition_parents(condition)[0]
     self.assertEqual(parent, updated_parent)
예제 #2
0
 def test_update_parent_road_condition_two_children(self):
     condition = self.conditions[0]
     parent = self.conditions[1]
     child = self.conditions[2]
     create_rc_to_rc([parent], [child])
     with self.assertRaises(ExceededRoadConditionChildNumbers):
         update_parents(condition, None, parent.id)
예제 #3
0
 def test_update_parent_road_condition_incorrect_depth(self):
     condition = self.conditions[0]
     parent_1 = self.conditions[1]
     parent_2 = self.conditions[2]
     parent_3 = self.conditions[3]
     create_rc_to_rc([parent_1, parent_2], [parent_2, parent_3])
     with self.assertRaises(ExceededRoadConditionChildDepth):
         update_parents(condition, None, parent_3.id)
예제 #4
0
 def test_update_parent_road_condition_correct(self):
     condition = self.conditions[0]
     parent = self.conditions[1]
     grand_parent = self.conditions[2]
     create_rc_to_rc([grand_parent], [parent])
     update_parents(condition, None, parent.id)
     updated_parent = get_road_condition_parents(condition)[0]
     self.assertEqual(parent, updated_parent)
예제 #5
0
 def test_update_parent_road_segment(self):
     condition = self.conditions[0]
     segment = self.road_segments[0]
     create_rs_to_rc([segment], [condition])
     new_segment = self.road_segments[1]
     update_parents(condition, new_segment.id, None)
     updated_parent = RoadSegmentToRoadCondition.objects.filter(
         road_condition=condition) \
         .first().road_segment
     self.assertEqual(new_segment, updated_parent)
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()
예제 #7
0
 def test_update_parent_road_condition_circular(self):
     condition = self.conditions[0]
     parent_1 = self.conditions[1]
     create_rc_to_rc([condition], [parent_1])
     with self.assertRaises(CircularRoadCondition):
         update_parents(condition, None, parent_1.id)