Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 44e63b6105 | |||
| dae78ee976 | |||
| f813eaf9bf | |||
| 8baea20824 | |||
| 393ee997d9 |
+3
-3
@@ -7,7 +7,7 @@ stages:
|
|||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
install:
|
install:
|
||||||
image: node:14
|
image: node:16
|
||||||
stage: setup
|
stage: setup
|
||||||
script:
|
script:
|
||||||
- npm ci
|
- npm ci
|
||||||
@@ -57,14 +57,14 @@ lint:py:
|
|||||||
- black --check .
|
- black --check .
|
||||||
|
|
||||||
lint:js:
|
lint:js:
|
||||||
image: node:14
|
image: node:16
|
||||||
stage: lint
|
stage: lint
|
||||||
needs: ["install"]
|
needs: ["install"]
|
||||||
script:
|
script:
|
||||||
- npm run lint:js
|
- npm run lint:js
|
||||||
|
|
||||||
lint:md:
|
lint:md:
|
||||||
image: node:14
|
image: node:16
|
||||||
stage: lint
|
stage: lint
|
||||||
needs: ["install"]
|
needs: ["install"]
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -22,6 +22,13 @@ class SignupTestCase(APITestCase):
|
|||||||
|
|
||||||
self.signup1 = createSignupObject("1", self.signupForm, ALL_QUESTION_TYPES)
|
self.signup1 = createSignupObject("1", self.signupForm, ALL_QUESTION_TYPES)
|
||||||
self.signup2 = createSignupObject("2", self.signupForm, ALL_QUESTION_TYPES)
|
self.signup2 = createSignupObject("2", self.signupForm, ALL_QUESTION_TYPES)
|
||||||
|
self.signup_admin_delete = createSignupObject(
|
||||||
|
"3", self.signupForm, ALL_QUESTION_TYPES
|
||||||
|
)
|
||||||
|
self.signup_user_delete = createSignupObject(
|
||||||
|
"4", self.signupForm, ALL_QUESTION_TYPES
|
||||||
|
)
|
||||||
|
self.signup_count = 4
|
||||||
|
|
||||||
username, password = "test_admin", "password123"
|
username, password = "test_admin", "password123"
|
||||||
self.authClient = User.objects.create_superuser(
|
self.authClient = User.objects.create_superuser(
|
||||||
@@ -49,17 +56,17 @@ class SignupTestCase(APITestCase):
|
|||||||
new = createSignupRequest("asd", self.signupForm.id, ALL_QUESTION_TYPES_ANSWER)
|
new = createSignupRequest("asd", self.signupForm.id, ALL_QUESTION_TYPES_ANSWER)
|
||||||
response = self.client.post(URL, new, format="json")
|
response = self.client.post(URL, new, format="json")
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
self.assertEqual(Signup.objects.count(), 3)
|
self.assertEqual(Signup.objects.count(), self.signup_count + 1)
|
||||||
|
|
||||||
# Can signup to a hidden form
|
# Can signup to a hidden form
|
||||||
def test_create_signup_hidden(self):
|
def test_create_signup_hidden(self):
|
||||||
new = createSignupRequest("asd", self.hiddenForm.id, ALL_QUESTION_TYPES_ANSWER)
|
new = createSignupRequest("asd", self.hiddenForm.id, ALL_QUESTION_TYPES_ANSWER)
|
||||||
response = self.client.post(URL, new, format="json")
|
response = self.client.post(URL, new, format="json")
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
self.assertEqual(Signup.objects.count(), 3)
|
self.assertEqual(Signup.objects.count(), self.signup_count + 1)
|
||||||
|
|
||||||
def test_delete_as_admin(self):
|
def test_delete_as_admin(self):
|
||||||
id = self.signup1.id
|
id = self.signup_admin_delete.id
|
||||||
no_auth_response = self.client.delete(f"{URL}{id}/", format="json")
|
no_auth_response = self.client.delete(f"{URL}{id}/", format="json")
|
||||||
self.assertEqual(no_auth_response.status_code, status.HTTP_401_UNAUTHORIZED)
|
self.assertEqual(no_auth_response.status_code, status.HTTP_401_UNAUTHORIZED)
|
||||||
self.client.force_authenticate(user=self.authClient)
|
self.client.force_authenticate(user=self.authClient)
|
||||||
@@ -81,9 +88,18 @@ class SignupTestCase(APITestCase):
|
|||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
self.assertEqual(Signup.objects.get(id=id).answer["-naY2R1-h"], "Edited Testi")
|
self.assertEqual(Signup.objects.get(id=id).answer["-naY2R1-h"], "Edited Testi")
|
||||||
|
|
||||||
@skip("NotImplemented")
|
def test_delete_as_user(self):
|
||||||
def test_delete_signup_token(self):
|
bad_uuid = "d5a98794-8330-45b4-8ed4-cdb84198649b"
|
||||||
pass
|
id = self.signup_user_delete.id
|
||||||
|
uuid = self.signup_user_delete.uuid
|
||||||
|
|
||||||
|
no_auth_response = self.client.delete(f"{URL}{id}/delete/?uuid={bad_uuid}")
|
||||||
|
self.assertEqual(no_auth_response.status_code, status.HTTP_404_NOT_FOUND)
|
||||||
|
self.assertEqual(Signup.objects.get(id=id).deleted, False)
|
||||||
|
|
||||||
|
response = self.client.delete(f"{URL}{id}/delete/?uuid={uuid}")
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertEqual(Signup.objects.get(id=id).deleted, True)
|
||||||
|
|
||||||
# TODO: Use some mocking library and check that sendgrid is actually called
|
# TODO: Use some mocking library and check that sendgrid is actually called
|
||||||
def test_signupee_sendemail(self):
|
def test_signupee_sendemail(self):
|
||||||
|
|||||||
+21
-1
@@ -200,7 +200,13 @@ class SignupViewSet(ModelViewSet):
|
|||||||
serializer_class = SignupSerializer
|
serializer_class = SignupSerializer
|
||||||
permission_classes = [SignupPermission]
|
permission_classes = [SignupPermission]
|
||||||
|
|
||||||
@action(detail=True, methods=["get", "put"], permission_classes=[AllowAny])
|
@action(
|
||||||
|
url_path="edit",
|
||||||
|
url_name="edit",
|
||||||
|
detail=True,
|
||||||
|
methods=["get", "put"],
|
||||||
|
permission_classes=[AllowAny],
|
||||||
|
)
|
||||||
def edit(self, request, pk=None, *args, **kwargs):
|
def edit(self, request, pk=None, *args, **kwargs):
|
||||||
uuid = request.query_params.get("uuid", None)
|
uuid = request.query_params.get("uuid", None)
|
||||||
queryset = self.filter_queryset(self.get_queryset())
|
queryset = self.filter_queryset(self.get_queryset())
|
||||||
@@ -211,6 +217,20 @@ class SignupViewSet(ModelViewSet):
|
|||||||
elif request.method == "PUT":
|
elif request.method == "PUT":
|
||||||
return self.partial_update(request, *args, **kwargs)
|
return self.partial_update(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@action(
|
||||||
|
url_path="delete",
|
||||||
|
url_name="delete",
|
||||||
|
detail=True,
|
||||||
|
methods=["delete"],
|
||||||
|
permission_classes=[AllowAny],
|
||||||
|
)
|
||||||
|
def user_delete(self, request, pk=None, *args, **kwargs):
|
||||||
|
uuid = request.query_params.get("uuid", None)
|
||||||
|
queryset = self.filter_queryset(self.get_queryset())
|
||||||
|
filter = {"pk": pk, "uuid": uuid}
|
||||||
|
get_object_or_404(queryset, **filter)
|
||||||
|
return self.destroy(request, *args, **kwargs)
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
id = request.data["signupForm_id"]
|
id = request.data["signupForm_id"]
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user