示例#1
0
def test_get_channel_type():
    eq_(get_channel_type('sms'), chaos_pb2.Channel.sms)
    eq_(get_channel_type('email'), chaos_pb2.Channel.email)
    eq_(get_channel_type('web'), chaos_pb2.Channel.web)
    eq_(get_channel_type('mobile'), chaos_pb2.Channel.mobile)
    eq_(get_channel_type('notification'), chaos_pb2.Channel.notification)
    eq_(get_channel_type('twitter'), chaos_pb2.Channel.twitter)
    eq_(get_channel_type('facebook'), chaos_pb2.Channel.facebook)
    eq_(get_channel_type('title'), chaos_pb2.Channel.title)
    eq_(get_channel_type('beacon'), chaos_pb2.Channel.beacon)
    eq_(get_channel_type('foo'), chaos_pb2.Channel.unkown_type)
示例#2
0
def test_get_channel_type():
    eq_(get_channel_type('sms'), chaos_pb2.Channel.sms)
    eq_(get_channel_type('email'), chaos_pb2.Channel.email)
    eq_(get_channel_type('web'), chaos_pb2.Channel.web)
    eq_(get_channel_type('mobile'), chaos_pb2.Channel.mobile)
    eq_(get_channel_type('notification'), chaos_pb2.Channel.notification)
    eq_(get_channel_type('twitter'), chaos_pb2.Channel.twitter)
    eq_(get_channel_type('facebook'), chaos_pb2.Channel.facebook)
    eq_(get_channel_type('title'), chaos_pb2.Channel.title)
    eq_(get_channel_type('beacon'), chaos_pb2.Channel.beacon)
    eq_(get_channel_type('foo'), chaos_pb2.Channel.unkown_type)
示例#3
0
def test_disruption_without_routes():
    disruption = get_disruption('KISIO-DIGITAL', False, False)
    feed_entity = populate_pb(disruption).entity[0]
    eq_(feed_entity.is_deleted, False)
    disruption_pb = feed_entity.Extensions[chaos.chaos_pb2.disruption]

    eq_(disruption_pb.reference, disruption.reference)
    eq_(disruption_pb.cause.wording, disruption.cause.wording)
    eq_(len(disruption_pb.localization), 1)
    eq_(disruption_pb.localization[0].uri, disruption.localizations[0].uri)
    eq_(len(disruption_pb.tags), 2)
    eq_(disruption_pb.tags[0].name, disruption.tags[0].name)
    eq_(disruption_pb.tags[1].name, disruption.tags[1].name)

    eq_(len(disruption_pb.impacts), 3)
    eq_(disruption_pb.impacts[0].severity.wording,
        "Severity_with_priority_NULL")
    eq_(disruption_pb.impacts[0].severity.color, "#FFFF00")

    eq_(len(disruption_pb.impacts[0].application_periods), 1)
    eq_(len(disruption_pb.impacts[0].informed_entities), 5)
    eq_(disruption_pb.impacts[0].informed_entities[0].uri,
        disruption.impacts[0].objects[0].uri)
    eq_(disruption_pb.impacts[0].informed_entities[0].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[0].type))
    eq_(disruption_pb.impacts[0].informed_entities[1].uri,
        disruption.impacts[0].objects[1].uri)
    eq_(disruption_pb.impacts[0].informed_entities[1].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[1].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].uri,
        disruption.impacts[0].objects[2].uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[2].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.uri,
        disruption.impacts[0].objects[2].line_section.line.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.
        pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.line.type))

    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        start_point.uri,
        disruption.impacts[0].objects[2].line_section.start_point.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        start_point.pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.start_point.type))

    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        end_point.uri,
        disruption.impacts[0].objects[2].line_section.end_point.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        end_point.pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.end_point.type))

    eq_(disruption_pb.impacts[0].informed_entities[3].uri,
        disruption.impacts[0].objects[3].uri)
    eq_(disruption_pb.impacts[0].informed_entities[3].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[3].type))

    eq_(
        len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.
            routes), 0)
    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.via),
        0)
    eq_(disruption_pb.impacts[0].messages[0].text,
        disruption.impacts[0].messages[0].text)
    eq_(disruption_pb.impacts[0].messages[0].channel.name,
        disruption.impacts[0].messages[0].channel.name)
    eq_(disruption_pb.impacts[0].messages[0].channel.max_size,
        disruption.impacts[0].messages[0].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[0].channel.content_type,
        disruption.impacts[0].messages[0].channel.content_type)
    eq_(
        disruption_pb.impacts[0].messages[0].channel.types[0],
        get_channel_type(
            disruption.impacts[0].messages[0].channel.channel_types[0].name))
    eq_(
        disruption_pb.impacts[0].messages[0].channel.types[1],
        get_channel_type(
            disruption.impacts[0].messages[0].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].messages[1].text,
        disruption.impacts[0].messages[1].text)
    eq_(disruption_pb.impacts[0].messages[1].channel.name,
        disruption.impacts[0].messages[1].channel.name)
    eq_(disruption_pb.impacts[0].messages[1].channel.max_size,
        disruption.impacts[0].messages[1].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[1].channel.content_type,
        disruption.impacts[0].messages[1].channel.content_type)
    eq_(
        disruption_pb.impacts[0].messages[1].channel.types[0],
        get_channel_type(
            disruption.impacts[0].messages[1].channel.channel_types[0].name))
    eq_(
        disruption_pb.impacts[0].messages[1].channel.types[1],
        get_channel_type(
            disruption.impacts[0].messages[1].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[1].HasField('send_notifications'), True)
    eq_(disruption_pb.impacts[1].send_notifications, True)
    eq_(disruption_pb.impacts[2].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[0].HasField('notification_date'), False)
    eq_(disruption_pb.impacts[1].HasField('notification_date'), True)
    eq_(
        disruption_pb.impacts[1].notification_date,
        get_pos_time(
            parse_datetime("2014-04-12T16:52:00").replace(tzinfo=None)))
    eq_(disruption_pb.impacts[2].HasField('notification_date'), False)
示例#4
0
def test_disruption():
    disruption = get_disruption(None)
    feed_entity = populate_pb(disruption).entity[0]
    eq_(feed_entity.is_deleted, False)
    disruption_pb = feed_entity.Extensions[chaos.chaos_pb2.disruption]
    eq_(disruption_pb.HasField('contributor'), False)
    eq_(disruption_pb.reference, disruption.reference)
    eq_(disruption_pb.cause.wording, disruption.cause.wording)
    eq_(len(disruption_pb.cause.wordings), 2)
    eq_(disruption_pb.cause.category.name, disruption.cause.category.name)
    eq_(len(disruption_pb.localization), 1)
    eq_(disruption_pb.localization[0].uri, disruption.localizations[0].uri)
    eq_(len(disruption_pb.tags), 2)
    eq_(disruption_pb.tags[0].name, disruption.tags[0].name)
    eq_(disruption_pb.tags[1].name, disruption.tags[1].name)

    eq_(len(disruption_pb.properties), 1)
    eq_(disruption_pb.properties[0].key, 'key')
    eq_(disruption_pb.properties[0].type, 'type')
    eq_(disruption_pb.properties[0].value, '42')

    eq_(len(disruption_pb.impacts), 3)
    eq_(disruption_pb.impacts[0].severity.wording,
        "Severity_with_priority_NULL")
    eq_(disruption_pb.impacts[0].severity.color, "#FFFF00")
    eq_(disruption_pb.impacts[0].severity.effect,
        chaos.gtfs_realtime_pb2.Alert.NO_SERVICE)
    eq_(disruption_pb.impacts[0].severity.priority, 0)
    eq_(disruption_pb.impacts[1].severity.wording, "Severity_with_priority_0")
    eq_(disruption_pb.impacts[1].severity.priority, 0)
    eq_(disruption_pb.impacts[2].severity.wording, "Severity_with_priority_2")
    eq_(disruption_pb.impacts[2].severity.priority, 2)

    eq_(len(disruption_pb.impacts[0].application_periods), 1)
    eq_(len(disruption_pb.impacts[0].informed_entities), 5)

    eq_(disruption_pb.impacts[0].informed_entities[0].uri,
        disruption.impacts[0].objects[0].uri)
    eq_(disruption_pb.impacts[0].informed_entities[0].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[0].type))

    eq_(disruption_pb.impacts[0].informed_entities[1].uri,
        disruption.impacts[0].objects[1].uri)
    eq_(disruption_pb.impacts[0].informed_entities[1].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[1].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].uri,
        disruption.impacts[0].objects[2].uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[2].type))

    eq_(disruption_pb.impacts[0].informed_entities[3].uri,
        disruption.impacts[0].objects[3].uri)
    eq_(disruption_pb.impacts[0].informed_entities[3].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[3].type))

    eq_(disruption_pb.impacts[0].informed_entities[4].uri,
        disruption.impacts[0].objects[4].uri)
    eq_(disruption_pb.impacts[0].informed_entities[4].pt_object_type,
        get_pt_object_type(disruption.impacts[0].objects[4].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.uri,
        disruption.impacts[0].objects[2].line_section.line.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.
        pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.line.type))

    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        start_point.uri,
        disruption.impacts[0].objects[2].line_section.start_point.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        start_point.pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.start_point.type))

    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        end_point.uri,
        disruption.impacts[0].objects[2].line_section.end_point.uri)
    eq_(
        disruption_pb.impacts[0].informed_entities[2].pt_line_section.
        end_point.pt_object_type,
        get_pt_object_type(
            disruption.impacts[0].objects[2].line_section.end_point.type))

    eq_(
        len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.
            routes), 2)
    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.via),
        2)

    eq_(disruption_pb.impacts[0].messages[0].text,
        disruption.impacts[0].messages[0].text)
    eq_(disruption_pb.impacts[0].messages[0].channel.name,
        disruption.impacts[0].messages[0].channel.name)
    eq_(disruption_pb.impacts[0].messages[0].channel.max_size,
        disruption.impacts[0].messages[0].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[0].channel.content_type,
        disruption.impacts[0].messages[0].channel.content_type)
    eq_(
        disruption_pb.impacts[0].messages[0].channel.types[0],
        get_channel_type(
            disruption.impacts[0].messages[0].channel.channel_types[0].name))
    eq_(
        disruption_pb.impacts[0].messages[0].channel.types[1],
        get_channel_type(
            disruption.impacts[0].messages[0].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].messages[1].text,
        disruption.impacts[0].messages[1].text)
    eq_(disruption_pb.impacts[0].messages[1].channel.name,
        disruption.impacts[0].messages[1].channel.name)
    eq_(disruption_pb.impacts[0].messages[1].channel.max_size,
        disruption.impacts[0].messages[1].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[1].channel.content_type,
        disruption.impacts[0].messages[1].channel.content_type)
    eq_(
        disruption_pb.impacts[0].messages[1].channel.types[0],
        get_channel_type(
            disruption.impacts[0].messages[1].channel.channel_types[0].name))
    eq_(
        disruption_pb.impacts[0].messages[1].channel.types[1],
        get_channel_type(
            disruption.impacts[0].messages[1].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[1].HasField('send_notifications'), True)
    eq_(disruption_pb.impacts[1].send_notifications, True)
    eq_(disruption_pb.impacts[2].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[0].HasField('notification_date'), False)
    eq_(disruption_pb.impacts[1].HasField('notification_date'), True)
    eq_(
        disruption_pb.impacts[1].notification_date,
        get_pos_time(
            parse_datetime("2014-04-12T16:52:00").replace(tzinfo=None)))
    eq_(disruption_pb.impacts[2].HasField('notification_date'), False)
示例#5
0
def test_disruption_without_routes():
    disruption = get_disruption('KISIO-DIGITAL', False, False)
    feed_entity = populate_pb(disruption).entity[0]
    eq_(feed_entity.is_deleted, False)
    disruption_pb = feed_entity.Extensions[chaos.chaos_pb2.disruption]

    eq_(disruption_pb.reference, disruption.reference)
    eq_(disruption_pb.cause.wording, disruption.cause.wording)
    eq_(len(disruption_pb.localization), 1)
    eq_(disruption_pb.localization[0].uri,  disruption.localizations[0].uri)
    eq_(len(disruption_pb.tags), 2)
    eq_(disruption_pb.tags[0].name, disruption.tags[0].name)
    eq_(disruption_pb.tags[1].name, disruption.tags[1].name)


    eq_(len(disruption_pb.impacts), 3)
    eq_(disruption_pb.impacts[0].severity.wording, "Severity_with_priority_NULL")
    eq_(disruption_pb.impacts[0].severity.color, "#FFFF00")

    eq_(len(disruption_pb.impacts[0].application_periods), 1)
    eq_(len(disruption_pb.impacts[0].informed_entities), 5)
    eq_(disruption_pb.impacts[0].informed_entities[0].uri, disruption.impacts[0].objects[0].uri)
    eq_(disruption_pb.impacts[0].informed_entities[0].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[0].type))
    eq_(disruption_pb.impacts[0].informed_entities[1].uri, disruption.impacts[0].objects[1].uri)
    eq_(disruption_pb.impacts[0].informed_entities[1].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[1].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].uri, disruption.impacts[0].objects[2].uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.uri,
    disruption.impacts[0].objects[2].line_section.line.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.line.type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.start_point.uri,
    disruption.impacts[0].objects[2].line_section.start_point.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.start_point.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.start_point.type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.end_point.uri,
    disruption.impacts[0].objects[2].line_section.end_point.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.end_point.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.end_point.type))

    eq_(disruption_pb.impacts[0].informed_entities[3].uri, disruption.impacts[0].objects[3].uri)
    eq_(disruption_pb.impacts[0].informed_entities[3].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[3].type))

    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.routes), 0)
    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.via), 0)
    eq_(disruption_pb.impacts[0].messages[0].text, disruption.impacts[0].messages[0].text)
    eq_(disruption_pb.impacts[0].messages[0].channel.name, disruption.impacts[0].messages[0].channel.name)
    eq_(disruption_pb.impacts[0].messages[0].channel.max_size, disruption.impacts[0].messages[0].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[0].channel.content_type,
    disruption.impacts[0].messages[0].channel.content_type)
    eq_(disruption_pb.impacts[0].messages[0].channel.types[0], get_channel_type(disruption.impacts[0].messages[0].channel.channel_types[0].name))
    eq_(disruption_pb.impacts[0].messages[0].channel.types[1], get_channel_type(disruption.impacts[0].messages[0].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].messages[1].text, disruption.impacts[0].messages[1].text)
    eq_(disruption_pb.impacts[0].messages[1].channel.name, disruption.impacts[0].messages[1].channel.name)
    eq_(disruption_pb.impacts[0].messages[1].channel.max_size, disruption.impacts[0].messages[1].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[1].channel.content_type,
    disruption.impacts[0].messages[1].channel.content_type)
    eq_(disruption_pb.impacts[0].messages[1].channel.types[0], get_channel_type(disruption.impacts[0].messages[1].channel.channel_types[0].name))
    eq_(disruption_pb.impacts[0].messages[1].channel.types[1], get_channel_type(disruption.impacts[0].messages[1].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[1].HasField('send_notifications'), True)
    eq_(disruption_pb.impacts[1].send_notifications, True)
    eq_(disruption_pb.impacts[2].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[0].HasField('notification_date'), False)
    eq_(disruption_pb.impacts[1].HasField('notification_date'), True)
    eq_(disruption_pb.impacts[1].notification_date, get_pos_time(parse_datetime("2014-04-12T16:52:00").replace(tzinfo=None)))
    eq_(disruption_pb.impacts[2].HasField('notification_date'), False)
示例#6
0
def test_disruption():
    disruption = get_disruption(None)
    feed_entity = populate_pb(disruption).entity[0]
    eq_(feed_entity.is_deleted, False)
    disruption_pb = feed_entity.Extensions[chaos.chaos_pb2.disruption]
    eq_(disruption_pb.HasField('contributor'),  False)
    eq_(disruption_pb.reference,  disruption.reference)
    eq_(disruption_pb.cause.wording,  disruption.cause.wording)
    eq_(len(disruption_pb.cause.wordings), 2)
    eq_(disruption_pb.cause.category.name, disruption.cause.category.name)
    eq_(len(disruption_pb.localization),  1)
    eq_(disruption_pb.localization[0].uri,  disruption.localizations[0].uri)
    eq_(len(disruption_pb.tags),  2)
    eq_(disruption_pb.tags[0].name,  disruption.tags[0].name)
    eq_(disruption_pb.tags[1].name,  disruption.tags[1].name)

    eq_(len(disruption_pb.properties), 1)
    eq_(disruption_pb.properties[0].key, 'key')
    eq_(disruption_pb.properties[0].type, 'type')
    eq_(disruption_pb.properties[0].value, '42')

    eq_(len(disruption_pb.impacts),  3)
    eq_(disruption_pb.impacts[0].severity.wording,  "Severity_with_priority_NULL")
    eq_(disruption_pb.impacts[0].severity.color,  "#FFFF00")
    eq_(disruption_pb.impacts[0].severity.effect, chaos.gtfs_realtime_pb2.Alert.NO_SERVICE)
    eq_(disruption_pb.impacts[0].severity.priority,  0)
    eq_(disruption_pb.impacts[1].severity.wording,  "Severity_with_priority_0")
    eq_(disruption_pb.impacts[1].severity.priority,  0)
    eq_(disruption_pb.impacts[2].severity.wording,  "Severity_with_priority_2")
    eq_(disruption_pb.impacts[2].severity.priority,  2)

    eq_(len(disruption_pb.impacts[0].application_periods),  1)
    eq_(len(disruption_pb.impacts[0].informed_entities), 5)

    eq_(disruption_pb.impacts[0].informed_entities[0].uri, disruption.impacts[0].objects[0].uri)
    eq_(disruption_pb.impacts[0].informed_entities[0].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[0].type))

    eq_(disruption_pb.impacts[0].informed_entities[1].uri, disruption.impacts[0].objects[1].uri)
    eq_(disruption_pb.impacts[0].informed_entities[1].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[1].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].uri, disruption.impacts[0].objects[2].uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].type))

    eq_(disruption_pb.impacts[0].informed_entities[3].uri, disruption.impacts[0].objects[3].uri)
    eq_(disruption_pb.impacts[0].informed_entities[3].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[3].type))

    eq_(disruption_pb.impacts[0].informed_entities[4].uri, disruption.impacts[0].objects[4].uri)
    eq_(disruption_pb.impacts[0].informed_entities[4].pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[4].type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.uri,
    disruption.impacts[0].objects[2].line_section.line.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.line.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.line.type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.start_point.uri,
    disruption.impacts[0].objects[2].line_section.start_point.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.start_point.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.start_point.type))

    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.end_point.uri,
    disruption.impacts[0].objects[2].line_section.end_point.uri)
    eq_(disruption_pb.impacts[0].informed_entities[2].pt_line_section.end_point.pt_object_type,
    get_pt_object_type(disruption.impacts[0].objects[2].line_section.end_point.type))

    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.routes), 2)
    eq_(len(disruption_pb.impacts[0].informed_entities[2].pt_line_section.via), 2)

    eq_(disruption_pb.impacts[0].messages[0].text, disruption.impacts[0].messages[0].text)
    eq_(disruption_pb.impacts[0].messages[0].channel.name, disruption.impacts[0].messages[0].channel.name)
    eq_(disruption_pb.impacts[0].messages[0].channel.max_size, disruption.impacts[0].messages[0].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[0].channel.content_type,
    disruption.impacts[0].messages[0].channel.content_type)
    eq_(disruption_pb.impacts[0].messages[0].channel.types[0], get_channel_type(disruption.impacts[0].messages[0].channel.channel_types[0].name))
    eq_(disruption_pb.impacts[0].messages[0].channel.types[1], get_channel_type(disruption.impacts[0].messages[0].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].messages[1].text, disruption.impacts[0].messages[1].text)
    eq_(disruption_pb.impacts[0].messages[1].channel.name, disruption.impacts[0].messages[1].channel.name)
    eq_(disruption_pb.impacts[0].messages[1].channel.max_size, disruption.impacts[0].messages[1].channel.max_size)
    eq_(disruption_pb.impacts[0].messages[1].channel.content_type,
    disruption.impacts[0].messages[1].channel.content_type)
    eq_(disruption_pb.impacts[0].messages[1].channel.types[0], get_channel_type(disruption.impacts[0].messages[1].channel.channel_types[0].name))
    eq_(disruption_pb.impacts[0].messages[1].channel.types[1], get_channel_type(disruption.impacts[0].messages[1].channel.channel_types[1].name))

    eq_(disruption_pb.impacts[0].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[1].HasField('send_notifications'), True)
    eq_(disruption_pb.impacts[1].send_notifications, True)
    eq_(disruption_pb.impacts[2].HasField('send_notifications'), False)
    eq_(disruption_pb.impacts[0].HasField('notification_date'), False)
    eq_(disruption_pb.impacts[1].HasField('notification_date'), True)
    eq_(disruption_pb.impacts[1].notification_date, get_pos_time(parse_datetime("2014-04-12T16:52:00").replace(tzinfo=None)))
    eq_(disruption_pb.impacts[2].HasField('notification_date'), False)