def test_user_signup(self): user_client = APIClient() user_client.default_format = 'json' data = self.create_mock_user_data() response = user_client.post('/v1/users/signup/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_verify_email(self): enis = User.objects.create_user( username="******", password="******", email=get_random_string(5) + '@bobmail.com', first_name=get_random_string(5), last_name=get_random_string(5), bio="Best backend developer of the world", verified=False, ) enis_client = APIClient() enis_client.default_format = 'json' enis_client.credentials(HTTP_AUTHORIZATION='Token ' + enis.auth_token.key) user = User.objects.get(id=enis.id) self.assertFalse(user.verified) email_verification = EmailVerification.objects.filter(user=enis) self.assertTrue(email_verification.exists()) data = {"key": "1"} response = enis_client.post("/api/v1/users/verify_email/", data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) data = {"key": email_verification.first().key} response = enis_client.post("/api/v1/users/verify_email/", data=data) self.assertEqual(response.status_code, status.HTTP_200_OK) user = User.objects.get(id=enis.id) self.assertTrue(user.verified)
def test_create_node(self): client = APIClient() client.default_format = 'json' data = {"handle": "enisbt"} request = client.post('/api/nodes/') self.assertEqual(request.status_code, status.HTTP_201_CREATED)
def create_user_and_user_client(self): user = User.objects.create_user(username=get_random_string(10), email=get_random_string(10) + '@bobmail.com', password=get_random_string(10)) client = APIClient() client.default_format = 'json' client.credentials(HTTP_AUTHORIZATION='Token ' + user.auth_token.key) return user, client
def test_change_password(self): enis = User.objects.create_user( username="******", password="******", email=get_random_string(5) + '@bobmail.com', first_name=get_random_string(5), last_name=get_random_string(5), bio="Best backend developer of the world", verified=True, ) enis_client = APIClient() enis_client.default_format = 'json' enis_client.credentials(HTTP_AUTHORIZATION='Token ' + enis.auth_token.key) data = {'email': enis.email, 'password': '******'} response = enis_client.post('/api/v1/users/login/', data=data) self.assertEqual(response.status_code, status.HTTP_200_OK) password_reset = PasswordReset.objects.filter(user=enis) self.assertFalse(password_reset.exists()) data = {"user_identifier": enis.username} response = enis_client.post("/api/v1/users/forgot_password/", data=data) self.assertEqual(response.status_code, status.HTTP_200_OK) password_reset = PasswordReset.objects.filter(user=enis) self.assertTrue(password_reset.exists()) password_reset = password_reset.first() data = {"key": password_reset.key, "password": "******"} response = enis_client.post("/api/v1/users/change_password/", data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) password_reset.until = timezone.now() - timedelta(hours=2) password_reset.save() data = {"key": password_reset.key, "password": "******"} response = enis_client.post("/api/v1/users/change_password/", data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) password_reset.until = timezone.now() + timedelta(hours=24) password_reset.save() data = {"key": password_reset.key, "password": "******"} response = enis_client.post("/api/v1/users/change_password/", data=data) self.assertEqual(response.status_code, status.HTTP_200_OK) data = {'email': enis.email, 'password': '******'} response = enis_client.post('/api/v1/users/login/', data=data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def create_user_and_client(): user = User.objects.create_user(username=get_random_string(6), password=get_random_string(9), email=get_random_string(5) + '@example.com') Token.objects.create(user=user) client = APIClient() client.default_format = 'json' client.credentials(HTTP_AUTHORIZATION='Token ' + user.auth_token.key) return user, client
def test_username_blacklist(self): user_client = APIClient() user_client.default_format = 'json' data = { 'username': '******', 'email': '*****@*****.**', 'password': '******', 'name': 'Enis B. Tuysuz', } response = user_client.post('/api/v1/users/register/', data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_register(self): user_client = APIClient() user_client.default_format = 'json' data = { 'username': '******', 'email': '*****@*****.**', 'password': '******', 'name': 'Enis B. Tuysuz', } response = user_client.post('/api/v1/users/register/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data['username'], 'enis') self.assertEqual(response.data['email'], '*****@*****.**')
def test_username_blacklist(self): user_client = APIClient() user_client.default_format = 'json' data = { "username": "******", "password": "******", 'email': get_random_string(5) + '@bobmail.com', 'first_name': get_random_string(5), 'last_name': get_random_string(5), 'bio': "Best backend developer of the world", } response = user_client.post('/v1/users/signup/', data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def create_user_and_user_client(self): user = User.objects.create_user( username=get_random_string(6), password="******", email=get_random_string(5) + '@bobmail.com', first_name=get_random_string(5), last_name=get_random_string(5), bio="Best backend developer of the world", verified=True, ) client = APIClient() client.default_format = 'json' client.credentials(HTTP_AUTHORIZATION='Token ' + user.auth_token.key) return user, client
def create_test_user_client(**user_data): user_data.update({ "username": "******" % randint(1, 999999), "first_name": "tester%s" % randint(1, 999999), "email": "*****@*****.**" % randint(1, 999999) }) user = User.objects.create(**user_data) Token.objects.create(user=user) client = APIClient() client.default_format = 'json' client.credentials(HTTP_AUTHORIZATION='Token ' + user.auth_token.key) return client, user
def test_user_login(self): data = { 'username': '******', 'password': '******', 'email': '*****@*****.**', 'first_name': 'Enis Behic', 'last_name': 'Tuysuz', } User.objects.create_user(**data) user_client = APIClient() user_client.default_format = 'json' data = {'username': '******', 'password': '******'} response = user_client.post('/v1/users/login/', data=data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_user_verification(self): enis_client = APIClient() enis_client.default_format = 'json' data = self.create_mock_user_data() response = enis_client.post('/v1/users/signup/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) enis_id = response.data['id'] verification = EmailVerification.objects.filter(user_id=enis_id) self.assertTrue(verification.exists()) response = enis_client.get('/v1/users/activate/?key=%s' % verification.first().key) self.assertEqual(response.status_code, status.HTTP_200_OK) user = User.objects.get(id=enis_id) self.assertTrue(user.verified)
def test_user_login(self): data = { 'username': '******', 'password': '******', 'email': '*****@*****.**', } user = User.objects.create_user(**data) Token.objects.create(user=user) user_client = APIClient() user_client.default_format = 'json' data = { 'username': '******', 'password': '******' } response = user_client.post('/user/login/', data=data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_change_password(self): user = User.objects.create_user(username=get_random_string(10), email=get_random_string(10) + '@bobmail.com', password="******") client = APIClient() client.default_format = 'json' client.credentials(HTTP_AUTHORIZATION='Token ' + user.auth_token.key) data = { "current_password": "******", "new_password": "******" } response = client.patch("/api/v1/users/password/", data=data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) data = { "current_password": "******", "new_password": "******" } response = client.patch("/api/v1/users/password/", data=data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def get_api_client(): api_client = APIClient() api_client.default_format = 'json' return api_client
def client(): client = APIClient() client.default_format = "json" return client
def get_api_client(user=None): api_client = APIClient() api_client.default_format = "json" if user: api_client.force_authenticate(user=user) return api_client
def api_client(): client = APIClient() client.default_format = 'json' return client