Неправильная насмешка внутри одного контрольного примера двух разных URL с точки зрения GET-параметров с использованием ответов

Я использую responses библиотека ( https://github.com/getsentry/responses) для имитации данных ответа в тесте.

В одном тестовом примере я добавляю два ответа для GET с разными URL-адресами в терминах параметров GET.

1) https://maps.googleapis.com/maps/api/geocode/json?latlng=52.212917394179335,20.983095079636158&key=key

2) https://maps.googleapis.com/maps/api/geocode/json?latlng=52.20212145989611,21.006183521756945&key=key

что просходит?

мой тестовый пример внутри класса переопределен django.test.TestCase похоже:

@responses.activate
def test_address_is_updated_correctly_when_spot_location_changed(self):
    latitude_1, longitude_1 = 52.226297, 20.982749
    url = REVERSE_GEOCODING_URL.format(
        latitude=latitude_1,
        longitude=longitude_1,
        api_key=settings.GOOGLE_MAP_API_KEY
    )
    responses.add(
        responses.GET,
        url,
        body=json.dumps(RESPONSE_GEOCODING_MOCK_2),
        content_type="application/json"
    )
    s1 = SpotFactory(
        name='test',
        location=Point(longitude_1, latitude_1)
    )
    s1.save()
    street_before = s1.address_street
    self.assertEqual(street_before, 'Kolejowa')
    latitude_2, longitude_2 = 52.27904, 20.980366
    url2 = REVERSE_GEOCODING_URL.format(
        latitude=latitude_2,
        longitude=longitude_2,
        api_key=settings.GOOGLE_MAP_API_KEY
    )
    responses.add(
        responses.GET,
        url2,
        body=json.dumps(RESPONSE_GEOCODING_MOCK),
        content_type="application/json"
    )
    s1.location.coords = (longitude_2, latitude_2)
    s1.save()
    s1 = Spot.objects.get(pk=s1.pk)
    self.assertEqual(s1.address_street, 'Mickiewicza')

ель утверждает, что в порядке

второй провал

потому что ответ от старого издевается.

Когда я ipdb после второго responses.add и сделать requsts.get(url2) я получаю данные от RESPONSE_GEOCODING_MOCK_2 вместо RESPONSE_GEOCODING_MOCK

При первом запросе я получаю:

ipdb> запросы на импорт; запросы.get(url2).json() {'status': 'OK', 'results': [{'geometry': {'bounds': {'southwest': {'lat': 52.2261726, 'lng': 20.9823615}, 'северо-восток': {'lat': 52.22673450000001, 'lng': 20.9833889}}, 'viewport': {'southwest': {'lat': 52.22510456970851, 'lng': 20.9815262197085}, 'northeast': {'lat': 52.22780253029151, 'lng': 20.98422418029151}}, 'location': {'lat': 52.2263065, 'lng': 20.9828941}, 'location_type': 'ROOFTOP'}, 'place_id': 'ChIJW6aw25vMHk9i'xgxxxgxgxg типы ': [' учреждение ', 'point_of_interest', ' предпосылка '], 'formatted_address': 'Kolejowa 47, 01-210 Warszawa, Poland', 'address_components': [{'types': ['street_number'], 'short_name': '47', 'long_name': '47'}, {'types': ['route'], 'short_name': 'Kolejowa', 'long_name': 'Kolejowa'}, {'types': [ "политические", "локальные", "локальный_уровень_1"], "краткое_имя": "Wola", "длинное_имя": "Wola"}, {"типы": ["местность", "политический"], "короткое имя": " Warszawa', 'long_name': 'Warszawa'}, {'types': ['administrator_area_level_2 ',' политический '], 'short_name': 'Warszawa', 'long_name': 'Warszawa'}, {'types': ['administrator_area_level_1', 'political]], 'short_name': 'mazowieckie', 'long_name': 'mazowieckie'}, {'types': ['country', 'political]], 'short_name': 'PL', 'long_name': 'Poland'}, {'types': ['postal_code'], 'short_name': '01-210', 'long_name': '01-210'}]}]}

делая это во второй раз, я получаю:

ipdb> запросы на импорт; запросы.get(url2).json() {'status': 'OK', 'results': [{'geometry': {'viewport': {'southwest': {'lat': 52.2776733197085, 'lng': 20.9792990197085}, 'северо-восток': {'lat': 52.2803712802915, 'lng': 20.9819969802915}}, 'location': {'lat': 52.2790223, 'lng': 20.980648}, 'location_type': 'ROOFTOP'}, 'place_id': 'ChIJxXoMrOfLHkcRBAFsrjKGcMc', 'types': ['street_address'], 'formatted_address': 'Mickiewicza 74, Warszawa, Poland', 'address_components': [{'types': ['street_number']:' short_name '74', 'long_name': '74'}, {'types': ['route'], 'short_name': 'Mickiewicza', 'long_name': 'Mickiewicza'}, {'types': ['polit', 'sublocality', 'sublocality_level_1'], 'short_name': 'iboliborz', 'long_name': 'Żoliborz'}, {'types': ['locality', 'polit'], 'short_name': 'Warszawa', 'long_name': 'Warszawa'}, {'types': ['administrator_area_level_2', 'political]],' short_name ':' Warszawa', 'long_name': 'Warszawa'}, {'types': ['administrator_area_level_1 ', "политический"], "короткое имя": "мазовецкое", "длинное_на" я ':' mazowieckie '}, {' types ': [' country ',' polit '], 'short_name': 'PL', 'long_name': 'Poland'}]}]}

0 ответов

Другие вопросы по тегам