Wpis z mikrobloga

Cześć. Od jakiegoś czasu, w ramach nauki programowania, piszę sobię dziennik elektroniczny w django i napotkałem pewien problem. Przy przejsciu z SQLite na PostgreSQL, niektóre testy, przestały przechodzić:

https://github.com/rcybulski1122012/django_school/blob/2f1fffb954f6bcbb2a837895dbcf4889674edacc/tests/lessons/test_views.py#L196 test_redirects_to_lesson_session_list_after_successful_update, test_renders_success_message_after_successful_update oraz test_updates_lesson_session_and_presences wyrzucają TypeError: expected string or bytes-like object, traceback: https://pastebin.com/SfA5ZFsp

https://github.com/rcybulski1122012/django_school/blob/2f1fffb954f6bcbb2a837895dbcf4889674edacc/tests/lessons/test_forms.py#L32 wyrzuca django_school.apps.lessons.models.Presence.student.RelatedObjectDoesNotExist: Presence has no student., traceback: https://pastebin.com/UR0ZVLDC

Na SQLite wszystko działa jak należy, podobnie gdy każdy test odpale z osobna.
Będę wdzięczny za każdą podpowiedź, bo męczę są już kilka dni xd.

#python #django #naukaprogramowania
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@radek1122012: czy w metodzie PresenceFormSetTestCase.get_example_formset_data nie brakuje w zwracanym słowniku elementu zawierającego self.student? Później w metodzie test_valid używasz tego słownika do stworzenia PresenceFormSet, który potrzebuje wartości dla pola student, a w tym słowniku jej brakuje.
  • Odpowiedz
@ProfesorBigos @Tank1991

Rozwiazalem problem z PresenceFormSetTestCase.test_is_valid. Problem byl w metodzie get_example_formset_data, gdzie pk bylo wpisane na sztywno jako 1. Okazuje sie, ze obiekty tworzone w setUp, uzywajac sqlite, beda mialy pk = 1 w kazdym tescie, natomiast w przypadku postgresa, beda to kolejne liczby.

Macie jakis pomysl jak naprawic testy widokow? ( ͡° ͜ʖ ͡°)
  • Odpowiedz