Di tutorial sebelumnya kita telah belajar tentang Models dan Serializers. Sebagaimana kita tau unit test begitu penting bagi developer. Dengan unit test developer bisa menguji secara mandiri logika program yang sudah dibuat.
Dibagian ke-4 dari tutorial Membuat Service OTP Django Mysql, kita akan belajar bagaimana caranya memvalidasi OTP.
Jika kita kembali ke sequence diagram, kita akan menemukan logika bagaimana cara membuat validasi OTP.
Di bagian validasi token ini kita perlu melakukan pengecekan data terlebih dahulu apakah OTP Number yang di kirim oleh service client ada di database atau tidak.
Kemudian kita juga perlu melakukan pengecekan masa expired dari OTP Number yang dikirim oleh service client.
Ada beberapa hal yang akan kita pelajari di bagian ke-4 ini, diantara seperti dibawah ini :
def checkExistOtp(data):
try:
checkOTP = Otpservice.objects.filter(phone_number=data['phone_number'], otp_number=data['otp_number'])
if len(checkOTP) > 0:
return True, checkOTP[0], ""
return False, "", "OTP Number not found"
except Exception as e:
return False, "", str(e)
def checkOTPExpired(expired_unixtime):
curent_time = datetime.now()
curent_unix_time = curent_time.timestamp()
if int(curent_unix_time) < int(expired_unixtime):
return True, "OTP valid"
else:
return False, "OTP Expired"
def validateOTP(data):
try:
pass
except Exception as e:
pass
class ValidateOTPTestCase(TestCase):
payload_create_otp = {
'phone_number':'62878787123'
}
def test_validate_otp_succes(self):
status, otp = create_otp(self.payload_create_otp)
payload_validate_otp = {
'phone_number':'62878787123',
'otp_number': otp
}
status, message = validateOTP(payload_validate_otp)
self.assertEqual(status, True)
Github: https://github.com/halovina/otpservice/tree/validate-otp
Baca artikel lainya: