• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Django - testy. Otrzymuje 404 z poziomu testu mimo, że podana strona istnieje i działa OK (poza testami)

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
287 wizyt
pytanie zadane 14 lutego 2023 w Python przez reaktywny Nałogowiec (44,490 p.)

Gdy odpalam stronę to pod linkiem:

localhost:8000/cars-info/124 wyświetla mi się 124 samochód i wszystko pięknie działa,

ale ten sam link w testach wysypuje się z błędem 404. Używam w teście Django zapisu:

pageurl = resolve_url(<span style="color:var(--highlight-variable); font-family:inherit; font-size:13px">'car_detail'</span>, car_id=<span style="color:var(--highlight-namespace); font-family:inherit; font-size:13px">124</span>)
response = self.client.get(pageurl)
self.assertEqual(response.status_code, <span style="color:var(--highlight-namespace); font-family:inherit; font-size:13px">200</span>)

Zamiast status code OK (200), otrzymuje w testach Not Found (404).

W urls.py mam:

path("cars-info/<int:car_id>/", views.CarInfoView.as_view(), name='car_detail'),

 

 

 

1 odpowiedź

+2 głosów
odpowiedź 14 lutego 2023 przez adrian17 Mentor (350,440 p.)
wybrane 14 lutego 2023 przez reaktywny
 
Najlepsza
No dobrze, ale to że w bazie działającej aplikacji masz samochód #124, nie znaczy że testy go mają. Testy za każdym razem działają na zupełnie nowo stworzonej, czystej bazie danych; musisz wrzucić do niej dane na początku wykonywania testu.

Masz przykład na samym początku dokumentacji, jak dodają wiersze na początku testów:

https://docs.djangoproject.com/en/4.1/topics/testing/overview/#writing-tests
komentarz 14 lutego 2023 przez reaktywny Nałogowiec (44,490 p.)

Tak, masz rację. W setUp utworzyłem dwa obiekty...

def setUp(self):

  Car.objects.create(....)

  Car.objects.create(....)

  Car.objects.count() ma wartość 2.

i problem nadal istnieje. Zakładam, ze id nowo tworzonych obiektów przyjmują wartości 1, 2... Ale to błędne założenie.

https://stackoverflow.com/questions/58242885/django-unit-test-ids-of-created-objects

Już działa OK - wielkie dzięki!

Podobne pytania

0 głosów
2 odpowiedzi 3,378 wizyt
pytanie zadane 28 października 2018 w Python przez Eliro Stary wyjadacz (12,160 p.)
0 głosów
1 odpowiedź 307 wizyt
pytanie zadane 12 listopada 2018 w Python przez Eliro Stary wyjadacz (12,160 p.)
0 głosów
1 odpowiedź 310 wizyt
pytanie zadane 21 listopada 2019 w Python przez Dawid89 Obywatel (1,190 p.)

93,165 zapytań

142,176 odpowiedzi

321,939 komentarzy

62,493 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rafalszastok
  8. 641p. - rucin93
  9. 629p. - Piotr Aleksandrowicz
  10. 629p. - Adrian Wieprzkowicz
  11. 621p. - Dawid128
  12. 611p. - ksalekk
  13. 606p. - Mariusz Fornal
  14. 602p. - Michał Telesz
  15. 597p. - Hubert Chęciński
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...