Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
 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
Пример #5
0
    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)
Пример #6
0
    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
Пример #7
0
    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)
Пример #8
0
    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'], '*****@*****.**')
Пример #9
0
    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)
Пример #10
0
 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
Пример #11
0
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
Пример #12
0
    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)
Пример #13
0
    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)
Пример #14
0
    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)
Пример #15
0
    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)
Пример #16
0
def get_api_client():
    api_client = APIClient()
    api_client.default_format = 'json'
    return api_client
Пример #17
0
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
Пример #19
0
def api_client():
    client = APIClient()
    client.default_format = 'json'
    return client