def create_severity_wordings_from_json(json): wordings = [] for wording_json in json: wording = models.Wording() mapper.fill_from_json(wording, wording_json, mapper.meta_mapping) wordings.append(wording) return wordings
def test_disruption_with_rabbitmq_exception(): ''' Tests when a disruption fail to publish to rabbitmq :return: ''' disruption = models.Disruption() #contributor disruption.contributor = models.Contributor() disruption.contributor_id = disruption.contributor.id #cause disruption.cause = models.Cause() disruption.cause.wording = "CauseTest" disruption.cause.category = models.Category() disruption.cause.category.name = "CategoryTest" disruption.reference = "DisruptionTest" #localization localization = models.PTobject() localization.uri = "stop_area:123" localization.type = "stop_area" disruption.localizations.append(localization) # Wording wording = models.Wording() wording.key = "key_1" wording.value = "value_1" disruption.cause.wordings.append(wording) wording = models.Wording() wording.key = "key_2" wording.value = "value_2" disruption.cause.wordings.append(wording) # Tag tag = models.Tag() tag.name = "rer" disruption.tags.append(tag) disruption.status = 'published' chaos.publisher.publish = MagicMock(return_value=False) to_rabbitmq_not_sent = send_disruption_to_navitia(disruption) eq_(to_rabbitmq_not_sent, False)
def test_disruption_with_published_status_is_sent(): ''' Tests that a disruption with status published is sent to navitia :return: ''' disruption = models.Disruption() #contributor disruption.contributor = models.Contributor() disruption.contributor_id = disruption.contributor.id #cause disruption.cause = models.Cause() disruption.cause.wording = "CauseTest" disruption.cause.category = models.Category() disruption.cause.category.name = "CategoryTest" disruption.reference = "DisruptionTest" #localization localization = models.PTobject() localization.uri = "stop_area:123" localization.type = "stop_area" disruption.localizations.append(localization) # Wording wording = models.Wording() wording.key = "key_1" wording.value = "value_1" disruption.cause.wordings.append(wording) wording = models.Wording() wording.key = "key_2" wording.value = "value_2" disruption.cause.wordings.append(wording) # Tag tag = models.Tag() tag.name = "rer" disruption.tags.append(tag) disruption.status = 'published' has_been_sent = send_disruption_to_navitia(disruption) eq_(has_been_sent, None)
def test_field_cause_none(): obj = Obj() obj.disruption = models.Disruption() cause = models.Cause() wording = models.Wording() wording.key = 'external_long' wording.value = 'external medium' cause.wordings.append(wording) obj.disruption.cause = cause class_field_cause = fields.FieldCause(Obj()) eq_(class_field_cause.output(None, obj), None)
def manage_wordings(db_object, json_wordings): db_object.delete_wordings() for json_wording in json_wordings: db_wording = models.Wording() key = json_wording["key"].strip() if key == '': raise exceptions.InvalidJson( 'Json invalid: key is empty, you give : {}'.format( json_wordings)) db_wording.key = json_wording["key"] db_wording.value = json_wording["value"] db_object.wordings.append(db_wording) db_object.wording = db_object.wordings[0].value
def manage_wordings(db_object, json): db_object.delete_wordings() # handle wordings wordings = json['wordings'] for json_wording in wordings: db_wording = models.Wording() key = json_wording["key"].strip() if key == '': raise exceptions.InvalidJson('Json invalid: key is empty, you give : {}'.format(wordings)) db_wording.key = json_wording["key"] db_wording.value = json_wording["value"] db_object.wordings.append(db_wording) # handle wording wording = db_object.wordings[0].value if 'wording' in json: wording = json['wording'] db_object.wording = wording
def generate_wording_from_json(json): wording = models.Wording() wording.key = json['key'] wording.value = json['value'] return wording