Пример #1
0
def test_build_messages_multiple_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 1, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    messages = request.build_messages()
    print messages
    assert len(messages) == 2
    assert set([message['message_id'] for message in messages]) == {1, 2}
Пример #2
0
def test_build_messages_single_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 2, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    messages = request.build_messages()
    print messages
    assert len(messages) == 1
    assert messages[0]['message_id'] == 3
Пример #3
0
def test_login_event_persists_user_data(setup):
    '''Test that user data is persisted after login event is received'''
    context.event_handler_manager = EventHandlerManager()
    event_batch = create_batch_with_login_event(user_id=1338, platform_id=2, device_token='str_device_token')
    event_request = EventRequestBatch([event_batch])
    event_request.process()
    device_tokens = list(database.get_device_tokens(1338))
    assert device_tokens == [(2, 'str_device_token')]
Пример #4
0
def test_build_messages_multiple_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 1, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    messages = request.build_messages()
    print messages
    assert len(messages) == 2
    assert set([message['message_id'] for message in messages]) == {1, 2}
Пример #5
0
def test_build_messages_single_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 2, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    messages = request.build_messages()
    print messages
    assert len(messages) == 1
    assert messages[0]['message_id'] == 3
Пример #6
0
def test_build_messages_missing_event(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 5
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    assert len(request.build_messages()) == 0
Пример #7
0
def test_build_messages_missing_event(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 5
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    assert len(request.build_messages()) == 0
Пример #8
0
def test_login_event_persists_user_data(setup):
    '''Test that user data is persisted after login event is received'''
    context.event_handler_manager = EventHandlerManager()
    event_batch = create_batch_with_login_event(
        user_id=1338, platform_id=2, device_token='str_device_token')
    event_request = EventRequestBatch([event_batch])
    event_request.process()
    device_tokens = list(database.get_device_tokens(1338))
    assert device_tokens == [(2, 'str_device_token')]
Пример #9
0
def test_login_event_duplicate(setup):
    '''Tests that user data is persisted correctly for duplicated login events'''
    context.event_handler_manager = EventHandlerManager()
    event_batch = create_batch_with_login_event(user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch])
    event_request_platform1.process()
    event_request_platform1.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert device_tokens == [(1, 'str_device_token_1')]
Пример #10
0
def test_login_and_then_other_event(setup, mocker):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()

    event_batch_platform1 = create_batch_with_login_event(user_id=1338, platform_id=1, device_id='str_device_id_1',
                                                          device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    # test no message
    event1 = EventRequestSingle(1, -1, None, 1442502890000)
    event_request_other1 = EventRequestBatch([event1])
    messages1 = event_request_other1.build_messages()
    assert len(messages1) == 0

    # test parameter from event
    params = {'title_param': 'param title', 'text_param': 'param content'}
    event2 = EventRequestSingle(user_id=1, event_id=3, pairs=params, timestamp=1442502890000)
    event_request_other2 = EventRequestBatch([event2])
    messages2 = event_request_other2.build_messages()
    assert len(messages2) == 1
    assert messages2[0]['message_id'] == 4
    assert messages2[0]['content'] == 'text param content'
    assert messages2[0]['title'] == 'title param title'

    # test missing parameter which is required by localization
    event3 = EventRequestSingle(user_id=1, event_id=3, pairs=None, timestamp=1442502890000)
    event_request_other3 = EventRequestBatch([event3])
    messages3 = event_request_other3.build_messages()
    assert len(messages3) == 0
Пример #11
0
def test_login_event_duplicate(setup):
    '''Tests that user data is persisted correctly for duplicated login events'''
    context.event_handler_manager = EventHandlerManager()
    event_batch = create_batch_with_login_event(
        user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch])
    event_request_platform1.process()
    event_request_platform1.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert device_tokens == [(1, 'str_device_token_1')]
Пример #12
0
def test_build_messages_single_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 2
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    messages = request.build_messages()
    print messages
    assert len(messages) == 1
    assert messages[0]['message_id'] == 3
Пример #13
0
def test_build_messages_multiple_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 1
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    messages = request.build_messages()
    print messages
    assert len(messages) == 2
    assert set([message['message_id'] for message in messages]) == {1, 2}
Пример #14
0
def test_build_messages_single_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 2
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    messages = request.build_messages()
    print messages
    assert len(messages) == 1
    assert messages[0]['message_id'] == 3
Пример #15
0
def test_build_messages_multiple_event_msg(setup):
    context.event_handler_manager = EventHandlerManager()
    event_proto = EventMessage_pb2.Event()
    event_proto.user_id = 1
    event_proto.event_id = 1
    event_proto.event_type = 2
    event_proto.timestamp = 1442502890000
    request = EventRequestBatch([event_proto])
    messages = request.build_messages()
    print messages
    assert len(messages) == 2
    assert set([message['message_id'] for message in messages]) == {1, 2}
Пример #16
0
def test_login_and_then_other_event(setup, mocker):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()

    event_batch_platform1 = create_batch_with_login_event(user_id=1338, platform_id=1, device_id='str_device_id_1',
                                                          device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    # test no message
    event3 = EventRequestSingle(1, -1, None, 1442502890000)
    event_request_other3 = EventRequestBatch([event3])
    messages3 = event_request_other3.build_messages()
    assert len(messages3) == 0
Пример #17
0
    def create_request(self, requests):
        valid_requests = []
        validator = JsonEventValidator()
        for request in requests:
            if validator.validate_single(request):
                valid_requests.append(EventRequestSingle(request['user_id'], request['event_id'], request['pairs'] if 'pairs' in request else {}, request['timestamp']))

        return EventRequestBatch(valid_requests)
Пример #18
0
    def create_request(self, requests):
        valid_requests = []
        validator = ProtoEventValidator()
        for request in requests:
            if validator.validate_single(request):
                valid_requests.append(EventRequestSingle(request.user_id, request.event_id, {pair.key:pair.value for pair in request.pairs}, request.timestamp))

        return EventRequestBatch(valid_requests)
Пример #19
0
def test_login_event_same_platform_different_device(setup):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()
    event_batch_platform1 = create_batch_with_login_event(
        user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    event_batch_platform2 = create_batch_with_login_event(
        user_id=1338, platform_id=1, device_token='str_device_token_2')
    event_request_platform2 = EventRequestBatch([event_batch_platform2])
    event_request_platform2.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert sorted(device_tokens) == [(1, 'str_device_token_1'),
                                     (1, 'str_device_token_2')]
Пример #20
0
def test_login_event_more_platforms(setup):
    '''Tests that user data is persisted for more platforms'''
    context.event_handler_manager = EventHandlerManager()
    event_batch_platform1 = create_batch_with_login_event(
        user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    event_batch_platform2 = create_batch_with_login_event(
        user_id=1338, platform_id=2, device_token='str_device_token_2')
    event_request_platform2 = EventRequestBatch([event_batch_platform2])
    event_request_platform2.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert sorted(device_tokens) == [(1, 'str_device_token_1'),
                                     (2, 'str_device_token_2')]
Пример #21
0
    def create_request(self, requests):
        valid_requests = []
        validator = ProtoEventValidator()
        for request in requests:
            if validator.validate_single(request):
                valid_requests.append(
                    EventRequestSingle(
                        request.user_id, request.event_id,
                        {pair.key: pair.value
                         for pair in request.pairs}, request.timestamp))
            else:
                context.main_logger.error("Request not valid: {req}".format(
                    req=str(request.__dict__)))

        return EventRequestBatch(valid_requests)
Пример #22
0
def test_login_event_more_platforms(setup):
    '''Tests that user data is persisted for more platforms'''
    context.event_handler_manager = EventHandlerManager()
    event_batch_platform1 = create_batch_with_login_event(user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    event_batch_platform2 = create_batch_with_login_event(user_id=1338, platform_id=2, device_token='str_device_token_2')
    event_request_platform2 = EventRequestBatch([event_batch_platform2])
    event_request_platform2.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert sorted(device_tokens) == [(1, 'str_device_token_1'), (2, 'str_device_token_2')]
Пример #23
0
def test_login_event_same_platform_different_device(setup):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()
    event_batch_platform1 = create_batch_with_login_event(user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    event_batch_platform2 = create_batch_with_login_event(user_id=1338, platform_id=1, device_token='str_device_token_2')
    event_request_platform2 = EventRequestBatch([event_batch_platform2])
    event_request_platform2.process()

    device_tokens = list(database.get_device_tokens(1338))
    assert sorted(device_tokens) == [(1, 'str_device_token_1'), (1, 'str_device_token_2')]
Пример #24
0
def test_login_and_then_other_event(setup, mocker):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()

    event_batch_platform1 = create_batch_with_login_event(
        user_id=1338,
        platform_id=1,
        device_id='str_device_id_1',
        device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    # test no message
    event3 = EventRequestSingle(1, -1, None, 1442502890000)
    event_request_other3 = EventRequestBatch([event3])
    messages3 = event_request_other3.build_messages()
    assert len(messages3) == 0
Пример #25
0
def test_login_and_then_other_event(setup, mocker):
    '''Tests that both devices are persisted if they have different tokens'''
    context.event_handler_manager = EventHandlerManager()

    event_batch_platform1 = create_batch_with_login_event(
        user_id=1338, platform_id=1, device_token='str_device_token_1')
    event_request_platform1 = EventRequestBatch([event_batch_platform1])
    event_request_platform1.process()

    # test no message
    event1 = EventRequestSingle(1, -1, None, 1442502890000)
    event_request_other1 = EventRequestBatch([event1])
    messages1 = event_request_other1.build_messages()
    assert len(messages1) == 0

    # test parameter from event
    params = {'title_param': 'param title', 'text_param': 'param content'}
    event2 = EventRequestSingle(user_id=1,
                                event_id=3,
                                pairs=params,
                                timestamp=2442502890000)
    event_request_other2 = EventRequestBatch([event2])
    messages2 = event_request_other2.build_messages()
    assert len(messages2) == 1
    assert messages2[0]['message_id'] == 4
    assert messages2[0]['content'] == 'text param content'
    assert messages2[0]['title'] == 'title param title'

    # test missing parameter which is required by localization
    event3 = EventRequestSingle(user_id=1,
                                event_id=3,
                                pairs=None,
                                timestamp=1442502890000)
    event_request_other3 = EventRequestBatch([event3])
    messages3 = event_request_other3.build_messages()
    assert len(messages3) == 0
Пример #26
0
def test_build_messages_missing_event(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 5, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    assert len(request.build_messages()) == 0
Пример #27
0
def test_build_messages_missing_event(setup):
    context.event_handler_manager = EventHandlerManager()
    single_request = EventRequestSingle(1, 5, {}, 1442502890000)
    request = EventRequestBatch([single_request])
    assert len(request.build_messages()) == 0