implement registration API tests
add some comments
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
from django.urls import reverse
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from apiserver.api.models import Member, User
|
||||
import json
|
||||
|
||||
class RegistrationTests(APITestCase):
|
||||
def setUp(self):
|
||||
self.url = reverse('rest_name_register')
|
||||
# TODO: expose data to be used for E2E testing from a webclient
|
||||
self.data = {
|
||||
"username": "registrationtc",
|
||||
"email": "unittest@email.com",
|
||||
"password1": "unittest",
|
||||
"password2": "unittest",
|
||||
"first_name": "John",
|
||||
"last_name": "Doe",
|
||||
|
||||
# need to fake this for updating progress
|
||||
"request_id": "lol"
|
||||
}
|
||||
# TODO: match with config
|
||||
self.allowed_ip = '24.66.110.96'
|
||||
|
||||
def test_success(self):
|
||||
"""Ensure we can create a new account object."""
|
||||
response = self.client.post(
|
||||
self.url,
|
||||
self.data,
|
||||
format='json',
|
||||
HTTP_X_REAL_IP=self.allowed_ip
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
user = User.objects.get(username=self.data['username'])
|
||||
assert user is not None
|
||||
assert Member.objects.get(user=user) is not None
|
||||
|
||||
def test_allowed_ip_wrong(self):
|
||||
"""Ensure creation only allowed when HTTP_X_REAL_IP header matched IP in whitelist"""
|
||||
response = self.client.post(
|
||||
self.url,
|
||||
self.data,
|
||||
format='json',
|
||||
HTTP_X_REAL_IP="0.0.0.0"
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
||||
Reference in New Issue
Block a user