(UPROSZECZNE) Mam prosty endpoint z listą miast w Django. Jest to wymagane przez biznes bo sprzedajemy na zewnątrz (przez API) listę miast z danego województwa codziennie aktualizowaną itd. Mamy 200 klientów, którzy płacą nam ponad 40000 zł za to jedno API (korzystają bez limitu).
Załóżmy, że klasa, która zwraca miasta robi trochę więcej ale dla uproszenia przyjmujemy, że wystawia jedną metodę publiczną.
class Cities:
def get_cities(self):
"""Do something non trivial"""
return ["Kraków", "Warszawa", "Poznań"]
def get_cities(request):
return Cities().get_cities()
urlpatterns = [
("/cities", get_cities, name="cities"),
]
@Riddle: Jak tu napisać poprawny test? Bo ja bym napisał po prostu:
class Test:
def test_get_cities(self)
# Prepare data to make response contain three cities
city_1 = "Kraków"
city_2 = "Warszawa"
city_3 = "Poznań"
response = self.client("cities")
self.assertEqual([city_1, city_2, city_3], response.json())
Ale wydaje mi się, że byłoby to błędne bo testowałbym implementację i teraz nie wiem jak to zrobić. Tak samo parsowałbym output (?) więc to też byłoby nie poprawne.
Proszę nie skupiać się na to, że klasa Cities
mogłaby być metodą itd. bo jest to uproszony przykład i normalnie ta klasa przyjmowała by parametry.