Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 44e63b6105 | |||
| dae78ee976 | |||
| f813eaf9bf | |||
| 8baea20824 | |||
| 393ee997d9 |
+3
-3
@@ -7,7 +7,7 @@ stages:
|
||||
- deploy
|
||||
|
||||
install:
|
||||
image: node:14
|
||||
image: node:16
|
||||
stage: setup
|
||||
script:
|
||||
- npm ci
|
||||
@@ -57,14 +57,14 @@ lint:py:
|
||||
- black --check .
|
||||
|
||||
lint:js:
|
||||
image: node:14
|
||||
image: node:16
|
||||
stage: lint
|
||||
needs: ["install"]
|
||||
script:
|
||||
- npm run lint:js
|
||||
|
||||
lint:md:
|
||||
image: node:14
|
||||
image: node:16
|
||||
stage: lint
|
||||
needs: ["install"]
|
||||
script:
|
||||
|
||||
@@ -22,6 +22,13 @@ class SignupTestCase(APITestCase):
|
||||
|
||||
self.signup1 = createSignupObject("1", 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"
|
||||
self.authClient = User.objects.create_superuser(
|
||||
@@ -49,17 +56,17 @@ class SignupTestCase(APITestCase):
|
||||
new = createSignupRequest("asd", self.signupForm.id, ALL_QUESTION_TYPES_ANSWER)
|
||||
response = self.client.post(URL, new, format="json")
|
||||
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
|
||||
def test_create_signup_hidden(self):
|
||||
new = createSignupRequest("asd", self.hiddenForm.id, ALL_QUESTION_TYPES_ANSWER)
|
||||
response = self.client.post(URL, new, format="json")
|
||||
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):
|
||||
id = self.signup1.id
|
||||
id = self.signup_admin_delete.id
|
||||
no_auth_response = self.client.delete(f"{URL}{id}/", format="json")
|
||||
self.assertEqual(no_auth_response.status_code, status.HTTP_401_UNAUTHORIZED)
|
||||
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(Signup.objects.get(id=id).answer["-naY2R1-h"], "Edited Testi")
|
||||
|
||||
@skip("NotImplemented")
|
||||
def test_delete_signup_token(self):
|
||||
pass
|
||||
def test_delete_as_user(self):
|
||||
bad_uuid = "d5a98794-8330-45b4-8ed4-cdb84198649b"
|
||||
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
|
||||
def test_signupee_sendemail(self):
|
||||
|
||||
+21
-1
@@ -200,7 +200,13 @@ class SignupViewSet(ModelViewSet):
|
||||
serializer_class = SignupSerializer
|
||||
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):
|
||||
uuid = request.query_params.get("uuid", None)
|
||||
queryset = self.filter_queryset(self.get_queryset())
|
||||
@@ -211,6 +217,20 @@ class SignupViewSet(ModelViewSet):
|
||||
elif request.method == "PUT":
|
||||
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):
|
||||
id = request.data["signupForm_id"]
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user