def test_it_returns_all_translations_data(
        mock_requests:                    mock.Mock,
        create_adapter:                   SupportsPerformingTranslations,
        mock_successful_get_all_response: mock.Mock,
):
    # arrange
    mock_requests.get.return_value = mock_successful_get_all_response

    # act
    result = create_adapter.get_all_translations()

    # assert
    assert_that(result, equal_to([
        Translation(
            uid='30292308e7',
            status=StatusOption.new,
            text=None,
            translated_text=None,
        ),
        Translation(
            uid='30292308e8',
            status=StatusOption.translating,
            text=None,
            translated_text=None,
        )
    ]))
def test_it_throws_if_get_all_request_goes_wrong(
        mock_requests:  mock.Mock,
        create_adapter: SupportsPerformingTranslations,
):
    # arrange
    mock_requests.get.return_value = mock.Mock(
        status_code=500,
        text='error message',
    )

    # act
    with pytest.raises(TranslationFailedException) as e:
        create_adapter.get_all_translations()

    # assert
    assert_that(str(e), contains_string('error message'))
def test_it_gets_all_translations_from_url_with_headers(
        mock_requests:                    mock.Mock,
        create_adapter:                   SupportsPerformingTranslations,
        mock_successful_get_all_response: mock.Mock,
):
    # arrange
    mock_requests.get.return_value = mock_successful_get_all_response

    # act
    create_adapter.get_all_translations()

    # assert
    mock_requests.get.assert_called_once_with(
        url='example.com/translation/',
        headers={
            'Authorization': 'ApiKey charles:123xyz',
            'Content-Type': 'application/json',
        },
    )