Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
def generate_wording_from_json(json):
    wording = models.Wording()
    wording.key = json['key']
    wording.value = json['value']
    return wording