def test_subscriber__get_topics__sm_api_error__logs_error_and_raises_SubscriptionManagerServiceError(caplog):
    caplog.set_level(logging.DEBUG)

    broker_handler = mock.Mock()
    sm_service = mock.Mock()
    sm_service.get_topics = 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.get_topics()

    assert "server error" == str(e.value)
    log_message = caplog.records[0]
    assert expected_message == log_message.message
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()