コード例 #1
0
def test_subscriber__get_topics__no_errors():
    topics = [Topic(name='topic1'), Topic(name='topic2')]

    broker_handler = mock.Mock()
    sm_service = mock.Mock()
    sm_service.get_topics = mock.Mock(return_value=topics)

    subscriber = Subscriber(broker_handler, sm_service)

    assert topics == subscriber.get_topics()
コード例 #2
0
def test_subscriber__subscribe__sm_api_error__logs_error_and_raises_SubscriptionManagerServiceError(caplog):
    caplog.set_level(logging.DEBUG)

    broker_handler = mock.Mock()
    sm_service = mock.Mock()
    sm_service.subscribe = mock.Mock(side_effect=SubscriptionManagerServiceError('server error'))

    subscriber = Subscriber(broker_handler, sm_service)

    expected_message = f"Error while accessing Subscription Manager: server error"
    with pytest.raises(SubscriptionManagerServiceError) as e:
        subscriber.subscribe('topics', callback=mock.Mock())

    assert "server error" == str(e.value)
    log_message = caplog.records[0]
    assert expected_message == log_message.message
コード例 #3
0
def test_subscriber__broker_handler_error__logs_and_raises_BrokerHandlerError(caplog):
    caplog.set_level(logging.DEBUG)

    queue = uuid.uuid4().hex

    broker_handler = mock.Mock()
    broker_handler.create_receiver = mock.Mock(side_effect=BrokerHandlerError('could not create receiver'))
    sm_service = mock.Mock()
    sm_service.subscribe = mock.Mock(return_value=queue)

    subscriber = Subscriber(broker_handler, sm_service)

    with pytest.raises(BrokerHandlerError) as e:
        subscriber.subscribe('topics', callback=mock.Mock())

    assert 'could not create receiver' == str(e.value)
    log_messages = caplog.records
    assert f"Subscribed in SM and got unique queue: {queue}" == log_messages[0].message
    assert 'could not create receiver' == log_messages[1].message
コード例 #4
0
def test_subscriber__resume__no_errors(caplog):
    caplog.set_level(logging.DEBUG)

    caplog.set_level(logging.DEBUG)

    queue = uuid.uuid4().hex
    topic = 'topics'

    broker_handler = mock.Mock()
    sm_service = mock.Mock()
    sm_service.resume = mock.Mock()

    subscriber = Subscriber(broker_handler, sm_service)
    subscriber.subscriptions[topic] = queue

    subscriber.resume(topic)

    log_message = caplog.records[0]
    assert 'Resumed subscription in Subscription Manager' == log_message.message
    sm_service.resume.assert_called_once_with(queue)
コード例 #5
0
def test_subscriber__unsubscribe__broker_handler_error__logs_and_raises_BrokerHandlerError(caplog):
    caplog.set_level(logging.DEBUG)

    queue = uuid.uuid4().hex
    topic = 'topics'

    broker_handler = mock.Mock()
    broker_handler.remove_receiver = mock.Mock(side_effect=BrokerHandlerError('could not remove receiver'))
    sm_service = mock.Mock()
    sm_service.unsubscribe = mock.Mock()

    subscriber = Subscriber(broker_handler, sm_service)
    subscriber.subscriptions[topic] = queue

    with pytest.raises(BrokerHandlerError) as e:
        subscriber.unsubscribe(topic)

    log_message = caplog.records[0]
    assert 'could not remove receiver' == str(e.value)
    assert 'could not remove receiver' == log_message.message
    sm_service.unsubscribe.assert_not_called()
コード例 #6
0
def test_subscriber__resume__sm_api_error__logs_message_and_raises_SubscriptionManagerServiceError(caplog):
    caplog.set_level(logging.DEBUG)

    caplog.set_level(logging.DEBUG)

    queue = uuid.uuid4().hex
    topic = 'topics'

    broker_handler = mock.Mock()
    sm_service = mock.Mock()
    sm_service.resume = mock.Mock(side_effect=SubscriptionManagerServiceError('server error'))

    subscriber = Subscriber(broker_handler, sm_service)
    subscriber.subscriptions[topic] = queue

    expected_message = f"Error while accessing Subscription Manager: server error"
    with pytest.raises(SubscriptionManagerServiceError) as e:
        subscriber.resume(topic)

    assert "server error" == str(e.value)
    log_message = caplog.records[0]
    assert expected_message == log_message.message
コード例 #7
0
def test_subscriber__subscribe__no_errors(caplog):
    caplog.set_level(logging.DEBUG)

    queue = uuid.uuid4().hex
    topic = 'topics'
    callback = mock.Mock()

    broker_handler = mock.Mock()
    broker_handler.create_receiver = mock.Mock()
    sm_service = mock.Mock()
    sm_service.subscribe = mock.Mock(return_value=queue)

    subscriber = Subscriber(broker_handler, sm_service)

    subscriber.subscribe(topic, callback)

    log_message = caplog.records[0]
    assert f"Subscribed in SM and got unique queue: {queue}" == log_message.message

    broker_handler.create_receiver.assert_called_once_with(queue, callback)

    assert subscriber.subscriptions[topic] == queue