Techniki Zaawansowane
3 godz. 43 min · Python · Full-stack i Programowanie
Grzegorz SzymborskiProgramistaJeżeli na samym początku nie przygotujemy dobrze projektu, to gdy wrócimy do niego po dłuższym czasie - czekają nas kłopoty. Jeżeli uda się nam go uruchomić, to rozeznanie się w nim będzie udręką. Prowadzący pokaże Ci jak wyglądają jego produkcyjne aplikacje, na co zwraca uwagę i co pomaga mu trzymać porządek.
Biblioteka pytest posiada wiele ciekawych funkcjonalności. Parametryzowanie testów, fixture i uproszczona składnia pozwalają nam skupić na testowaniu tego, co kluczowe, wydzielając mniej istotne fragmenty kodu. To wszystko sprawia, że w pewnym momencie łatwiej będzie Ci pisać testy, niż ręcznie sprawdzać poprawność działania apki.
Jeżeli aplikacja, którą stworzysz, osiągnie dużą popularność, może się okazać, że przytłoczona dużym ruchem zacznie spowalniać... lub całkowicie przestanie odpowiadać. Opiszemy różne techniki służące temu, by temu zaradzić - od metod select i prefetch related, aż po cache. Na deser przeprowadzimy na stronie test obciążeniowy za pomocą narzędzia locust.
Django i Postgres to świetne połączenie. Framework ten posiada wbudowaną obsługę wyszukiwania pełnotekstowego oferowanego przez tę bazę. Warto wiedzieć, kiedy jej użyć, a kiedy wystarczy zwykłe icontains.
ORM w Django ułatwia mnóstwo operacji. A czasem nie dość to, że ułatwia... to jeszcze przyspiesza! Chcemy zainspirować Cię czterema metodami: annotate, aggregate, bulkupdate i bulkcreate. Gdy pojawią się one w naszym kodzie, zaczniemy doceniać uroki frameworka Django.
Kurs jest stworzony dla osób, które znają już podstawy Django i wiedzą, jak pisać proste strony. Znają modele, widoki, oraz niestraszny im jest Python. Zalecana jest również podstawowa znajomość dowolnej relacyjnej bazy danych. W kursie przedstawiamy niekiedy narzędzia i praktyczne przykłady, jak można ich użyć, ale w celu zaimplementowania konkretnego rozwiązania w projekcie wymagana będzie umiejętność czytania dokumentacji.
W tym rozdziale pokażę wam jak napisać parametry testy i w czym one nam pomogą.
Napiszemy testy dla funkcji która zamienia liczbę niewiadomego pochodzenia na liczbę
z typem i w przypadku kiedy konwersja okaże się niemożliwa zwróci.
Mamy jeden test przykładowy w pliku test
który sprawdza czy dla argumentu 1 dostaniemy 1.
Sprawdzimy czy Test wykonuje poprawnie jest wszystko OK.
Testujemy sobie przypadek w którym
podana będzie liczba ujemna i sprawdzimy czy wartość jest dalej poprawna.
Kupujemy powyższy kod zmieniamy wartości i
sprawdzamy gdzie dostaniemy minus 1 dostaliśmy i teraz sobie wyobraźmy jeżeli
będziemy chcieli testować każde kolejne wartości np.
0.
Jakąś dużą wartość na milion.
Albo jeszcze więcej.
Ujemną dużą liczbę.
To pomimo tego że testy przechodzą
ich czytelność jest raczej wątpliwa i uciążliwe będzie jeżeli w którymś momencie
test nam się popsuje specjalnie popsuje test.
Uciążliwe będzie dopasowanie i szukanie przyczyny.
Na liście testów wykonanych dopiero jak wejdziemy tutaj zajrzymy konkretnie
zobaczymy dopiero w której linii i C test się sypał.
Ale protest oferuje nam bardzo fajne ułatwienia które
właśnie nazywa się testami parametry zwanymi stawiam to w ten sposób
że dokonujemy test poleceniem P test markę parametry.
Parametry. W pierwszym argument się przyjmuje.
Listę bądź String i czytelnie
listę i w liście wpisujemy jakie dokładnie parametry będą zmieniane
w naszym przypadku będzie to wartość którą wprowadzamy do funkcji
do funkcji Get It integralną i oczekiwana wartość.
W tym momencie piszemy wszystkie przypadki które chcemy przetestować
i oczekiwane wartości będą to Apple i jako pierwsze podajemy.
Wartość damą jako drugie wartość oczekiwaną
teraz jeszcze odmienić parametry które wchodzą w test.
Pierwsza będzie w pierwszym rzędzie Walia Valley Expo.
Zgodnie z tym co podaliśmy tutaj
sprawdzimy na początku na tym pierwszym teście czy.
Działa to poprawnie.
Porównamy to w ten sposób.
Dostaliśmy jakiś błąd.
Oczywiście nie daliśmy przecinka i nie zostało to potraktowane jak.
I test się wykonał.
Jak zajrzymy w teście to w podsumowaniu mamy każdy przypadek wyszczególnione.
I teraz sobie przywrócą te testy które pisaliśmy wcześniej.
I przeniesiemy je na szybko parametry zwanego testu.
Oba skróty klawiszowe odmieniło cały czas mi się zamyka okno.
Są wartości dane.
W imię wartości oczekiwane usuwane to co zbędne i uruchom ponownie.
Okazało się że nie przychodzi nam ten test który celowo popsuła i doskonale widać
czy się leży błąd i która wartość sprawia że funkcja jest działanie oczekiwania.
Możemy patrzeć o ile lepiej wygląda taki test o ile łatwiej dodaje się nowe.
Parametry.
Kolejną rzeczą którą możemy parametr rysować 15 są usterki.
Tu składnia wygląda nieco inaczej i pokażę to na przykładzie takich jakbyśmy mieli.
Pisać coś związanego z walutami
i chcielibyśmy testować to dla euro dla dolara i dla polskiego złotego piszemy.
Fix córkę która zwróci.
Wróci waluta i jeżeli chcemy żeby Jury zwracało nam raz dolara raz polską
złotówkę albo raz euro należy dodać tutaj Parametr parametr.
Z określonymi polami.
Dostęp do tego jest przez szczękę Request która zawiera.
Meta danych to jedna z tych.
Ta myśl jest.
Atrybut parom tutaj.
Zaprezentuje Jacka.
Wykonywane możemy sobie szczęki
dość prymitywnego pręta który pokaże co tu się dzieje.
Widać że wykonało się to wszystko dla trzech walut.