Skip to content

Commit 357443f

Browse files
Reeya123HadleyKing
authored andcommitted
remove.py update
1 parent b665a14 commit 357443f

File tree

2 files changed

+149
-23
lines changed

2 files changed

+149
-23
lines changed
Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/usr/bin/env python3
22

33
"""Remove Authentication
4-
Tests for 'New authentication credentials added to existing object' (200),
5-
'Authentication credentials were created and added' (201), 'Bad request' (400),
4+
Tests for (#Gives 409 instead of 200(Successfull request)- Requires checking)
5+
'Bad request' (400),
66
'That object already exists for this account' (409)
77
"""
88

@@ -17,33 +17,40 @@ class AuthenticationRemovetestcase(APITestCase):
1717

1818
def setUp(self):
1919
self.client = APIClient()
20+
# Checking if the user 'bco_api_user' already exists
21+
try:
22+
self.user = User.objects.get(username='bco_api_user')
23+
except User.DoesNotExist:
24+
self.user = User.objects.create_user(username='bco_api_user')
25+
26+
# Checking if user already has token, if not then creating one
27+
if not Token.objects.filter(user=self.user).exists():
28+
self.token = Token.objects.create(user=self.user)
29+
else:
30+
self.token = Token.objects.get(user=self.user)
2031

2132
def test_success_response(self):
2233
"""# Successful request with authentication data
2334
#Gives a 409 instead of 200
2435
"""
25-
token = Token.objects.get(user=User.objects.get(username='bco_api_user')).key
26-
data = {"iss": "Reeya1","sub": "ReeyaGupta1"}
36+
data = {"iss": "Reeya2","sub": "ReeyaGupta2"}
2737

28-
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token)
38+
self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
2939
response = self.client.post('/api/auth/remove/', data=data, format='json')
30-
print(response.json())
40+
3141
self.assertEqual(response.status_code, 200)
3242

33-
# def test_bad_request_response(self):
34-
# # Bad request: Missing required fields
35-
# data = {}
36-
# self.client.force_authenticate(user=self.user)
37-
# response = self.client.post('/api/auth/remove/', data=data)
38-
# self.assertEqual(response.status_code, 400)
39-
40-
# def test_object_already_exists_response(self):
41-
# # Object already exists for this account
42-
# data = {
43-
# "iss": "0000-0000-0000-0000",
44-
# "sub": "https://example.org"
45-
# }
46-
47-
# self.client.force_authenticate(user=self.user)
48-
# response = self.client.post('/api/auth/remove/', data=data)
49-
# self.assertEqual(response.status_code, 409)
43+
def test_bad_request_response(self):
44+
# Bad request: Missing required fields
45+
data = {}
46+
self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
47+
response = self.client.post('/api/auth/remove/', data=data)
48+
self.assertEqual(response.status_code, 400)
49+
50+
def test_object_already_exists_response(self):
51+
# Object already exists for this account
52+
data = {"iss": "Reeya1","sub": "ReeyaGupta1"}
53+
54+
self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
55+
response = self.client.post('/api/auth/remove/', data=data)
56+
self.assertEqual(response.status_code, 409)
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
from django.test import TestCase
2+
from rest_framework.authtoken.models import Token
3+
from rest_framework.test import APIClient
4+
from django.contrib.auth.models import User
5+
6+
class PrefixCreateTestCase(TestCase):
7+
fixtures = ['tests/fixtures/test_data']
8+
9+
def setUp(self):
10+
11+
# Checking if the user 'bco_api_user' already exists
12+
try:
13+
self.user = User.objects.get(username='bco_api_user')
14+
except User.DoesNotExist:
15+
self.user = User.objects.create_user(username='bco_api_user')
16+
17+
# Checking if user already has token, if not then creating one
18+
if not Token.objects.filter(user=self.user).exists():
19+
self.token = Token.objects.create(user=self.user)
20+
else:
21+
self.token = Token.objects.get(user=self.user)
22+
23+
def test_create_prefix_success(self):
24+
data = {
25+
"POST_api_prefixes_create": [
26+
{
27+
"owner_group": "bco_publisher",
28+
"owner_user": "anon",
29+
"prefixes": [
30+
{
31+
"description": "Just a test prefix.",
32+
"expiration_date": "2023-01-01-01-01-01",
33+
"prefix": "testR"
34+
},
35+
{
36+
"description": "Just another prefix.",
37+
"expiration_date": "2023-01-01-01-01-01",
38+
"prefix": "othER"
39+
}
40+
]
41+
}
42+
]
43+
}
44+
45+
response = self.client.post('/api/prefixes/create/', data=data, format='json')
46+
self.assertEqual(response.status_code, 201)
47+
48+
def test_create_prefix_bad_request(self):
49+
data = {
50+
# Incomplete or invalid data
51+
}
52+
53+
response = self.client.post('/api/prefixes/create/', data=data, format='json')
54+
self.assertEqual(response.status_code, 400)
55+
56+
def test_create_prefix_unauthorized(self):
57+
self.client.credentials(HTTP_AUTHORIZATION='Token invalid_token')
58+
data = {
59+
"POST_api_prefixes_create": [
60+
{
61+
"owner_group": "bco_publisher",
62+
"owner_user": "anon",
63+
"prefixes": [
64+
{
65+
"description": "Just a test prefix.",
66+
"expiration_date": "2023-01-01-01-01-01",
67+
"prefix": "testR"
68+
}
69+
]
70+
}
71+
]
72+
}
73+
74+
response = self.client.post('/api/prefixes/create/', data=data, format='json')
75+
self.assertEqual(response.status_code, 401)
76+
77+
def test_create_prefix_forbidden(self):
78+
data = {
79+
"POST_api_prefixes_create": [
80+
{
81+
"owner_group": "non_existing_group",
82+
"owner_user": "anon",
83+
"prefixes": [
84+
{
85+
"description": "Just a test prefix.",
86+
"expiration_date": "2023-01-01-01-01-01",
87+
"prefix": "testR"
88+
}
89+
]
90+
}
91+
]
92+
}
93+
94+
response = self.client.post('/api/prefixes/create/', data=data, format='json')
95+
self.assertEqual(response.status_code, 403)
96+
97+
def test_create_prefix_conflict(self):
98+
data = {
99+
"POST_api_prefixes_create": [
100+
{
101+
"owner_group": "bco_publisher",
102+
"owner_user": "anon",
103+
"prefixes": [
104+
{
105+
"description": "Just a test prefix.",
106+
"expiration_date": "2023-01-01-01-01-01",
107+
"prefix": "testR"
108+
}
109+
]
110+
}
111+
]
112+
}
113+
114+
# Create the prefix first
115+
self.client.post('/api/prefixes/create/', data=data, format='json')
116+
117+
# Try to create the same prefix again
118+
response = self.client.post('/api/prefixes/create/', data=data, format='json')
119+
self.assertEqual(response.status_code, 409)

0 commit comments

Comments
 (0)