Skip to content

Commit c94125e

Browse files
committed
Test PublishedState update method
1 parent a34085e commit c94125e

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

sasdata/fair_database/data/test/test_published_state.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,80 @@ def test_get_private_published_state_unauthorized(self):
381381
self.assertEqual(request2.status_code, status.HTTP_403_FORBIDDEN)
382382

383383
# Test updating a published state
384+
def test_update_public_published_state(self):
385+
request = self.auth_client1.put(
386+
"/v1/data/published/1/", data={"published": False}
387+
)
388+
self.assertEqual(request.status_code, status.HTTP_200_OK)
389+
self.assertEqual(
390+
request.data,
391+
{
392+
"published_state_id": 1,
393+
"session_id": 1,
394+
"title": "Public Session",
395+
"published": False,
396+
"is_public": True,
397+
},
398+
)
399+
self.assertFalse(PublishedState.objects.get(id=1).published)
400+
self.public_ps.save()
401+
402+
def test_update_private_published_state(self):
403+
request = self.auth_client1.put(
404+
"/v1/data/published/2/", data={"published": True}
405+
)
406+
self.assertEqual(request.status_code, status.HTTP_200_OK)
407+
self.assertEqual(
408+
request.data,
409+
{
410+
"published_state_id": 2,
411+
"session_id": 2,
412+
"title": "Private Session",
413+
"published": True,
414+
"is_public": False,
415+
},
416+
)
417+
self.assertTrue(PublishedState.objects.get(id=2).published)
418+
self.private_ps.save()
419+
420+
def test_update_unowned_published_state(self):
421+
request1 = self.auth_client1.put(
422+
"/v1/data/published/3/", data={"published": False}
423+
)
424+
request2 = self.client.put("/v1/data/published/3/", data={"published": False})
425+
self.assertEqual(request1.status_code, status.HTTP_403_FORBIDDEN)
426+
self.assertEqual(request2.status_code, status.HTTP_401_UNAUTHORIZED)
427+
self.assertTrue(PublishedState.objects.get(id=3).published)
428+
429+
def test_update_public_published_state_unauthorized(self):
430+
request1 = self.auth_client2.put(
431+
"/v1/data/published/1/", data={"published": False}
432+
)
433+
self.public_session.users.add(self.user2)
434+
request2 = self.auth_client2.put(
435+
"/v1/data/published/1/", data={"published": False}
436+
)
437+
self.public_session.users.remove(self.user2)
438+
request3 = self.client.put("/v1/data/published/1/", data={"published": False})
439+
self.assertEqual(request1.status_code, status.HTTP_403_FORBIDDEN)
440+
self.assertEqual(request2.status_code, status.HTTP_403_FORBIDDEN)
441+
self.assertEqual(request3.status_code, status.HTTP_401_UNAUTHORIZED)
442+
self.assertTrue(PublishedState.objects.get(id=1).published)
443+
444+
def test_update_private_published_state_unauthorized(self):
445+
request1 = self.auth_client2.put(
446+
"/v1/data/published/2/", data={"published": True}
447+
)
448+
self.public_session.users.add(self.user2)
449+
request2 = self.auth_client2.put(
450+
"/v1/data/published/2/", data={"published": True}
451+
)
452+
self.public_session.users.remove(self.user2)
453+
request3 = self.client.put("/v1/data/published/2/", data={"published": True})
454+
self.assertEqual(request1.status_code, status.HTTP_403_FORBIDDEN)
455+
self.assertEqual(request2.status_code, status.HTTP_403_FORBIDDEN)
456+
self.assertEqual(request3.status_code, status.HTTP_401_UNAUTHORIZED)
457+
self.assertFalse(PublishedState.objects.get(id=2).published)
384458

385459
# Test deleting a published state - session not deleted
386460

0 commit comments

Comments
 (0)