Pada blog minggu ini, saya akan menceritakan pengalaman saya mengenai GMT, bukan Greenwich Mean Time, melainkan:
Git, Mock, dan TDD.
<!--more-->
Fitur yang saya kerjakan adalah logout dan membuat endpoint server serta pagination.
Pada fitur login dan logout, kami memutuskan untuk menggunakan Django REST Framework dikarenakan kebijakan autentikasinya yang mencakup OAuth1a dan OAuth2 serta Serialization yang mendukung ORM dan non-ORM.
Agar dapat mengimplementasikan fitur logout, saya menambahkan penggunaan REST_FRAMEWORK (TokenAuthentication dan SessionAuthentication) pada file settings.py
Pembuatan tes untuk fitur ini saya buat pada dua buah kondisi, yaitu saat pengguna mengakses /logout/ dalam keadaan belum dan sudah ter-logout.
Sedangkan untuk dapat menjalankan tesnya dengan baik, saya menambahkan fungsi baru berupa post pada file views.py yang akan mengambil token dari pengguna lalu dihapus.
Pada fitur pembuatan endpoint server, kami menggunakan DjangoModelFactory untuk membuat data dummy dan Serializer agar data yang kompleks dapat dikonversi ke dalam datatype milik Python sehingga dapat dirender ke dalam konten lain.
Untuk pengetesannya sendiri, saya mengikuti pengetesan pada fitur logout, yaitu saat pengguna mengakses /servers/ dalam keadaan belum dan sudah ter-logout.
Sedangkan untuk dapat menjalankan tesnya dengan baik, saya menambahkan path baru yang mencakup servers.urls pada file urls.py
Pada fitur paginasi, saya hanya membuat tes yang akan membandingkan panjang dari data yang diterima serta menambahkan penggunaan pagination pada file views.py, ukuran page sebanyak 20 pada settings.py, dan kelas inner meta untuk membantu pengurutan ketika pagination berdasarkan id