예제 #1
0
def test_user_count(settings):
    """A basic test to execute the get_users_count Celery task."""
    UserFactory.create_batch(3)
    settings.CELERY_TASK_ALWAYS_EAGER = True
    task_result = get_users_count.delay()
    assert isinstance(task_result, EagerResult)
    assert task_result.result == 3
예제 #2
0
    def test_user_share_paste_with_other_users(self):
        self.client.force_login(self.user)
        paste = Paste.objects.create(owner=self.user, content="text")
        user_1 = UserFactory()
        user_2 = UserFactory()

        data = {
            "content": 'print("New Text"',
            "shared_with": [user_1.pk, user_2.pk]
        }
        resp = self.client.put(f"{self.url}{paste.pk}/", data)
        paste.refresh_from_db()
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertIn(user_1, paste.shared_with.all())
예제 #3
0
 def test_user_can_not_edit_other_paste(self):
     self.client.force_login(self.user)
     paste = Paste.objects.create(owner=UserFactory(), content="text")
     data = {"content": 'print("New Text"'}
     resp = self.client.put(f"{self.url}{paste.pk}/", data)
     paste.refresh_from_db()
     self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN)
예제 #4
0
 def test_user_can_not_view_paste_not_shared_with_him(self):
     user = UserFactory()
     paste = Paste.objects.create(owner=self.user,
                                  content='print("THis not shared")',
                                  is_public=False)
     self.client.force_login(user)
     resp = self.client.get(f"{self.url}{paste.pk}/")
     self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN)
예제 #5
0
 def test_user_can_view_paste_shared_with_him(self):
     user = UserFactory()
     paste = Paste.objects.create(owner=self.user,
                                  content='print("THis shared")',
                                  is_public=False)
     paste.shared_with.set([user])
     self.client.force_login(user)
     resp = self.client.get(f"{self.url}{paste.pk}/")
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     self.assertEqual(resp.data["content"], paste.content)
예제 #6
0
 def test_user_can_not_delete_other_paste(self):
     self.client.force_login(self.user)
     paste = Paste.objects.create(owner=UserFactory(), content="text")
     resp = self.client.delete(f"{self.url}{paste.pk}/")
     self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN)
예제 #7
0
 def setUp(self) -> None:
     self.user = UserFactory()
     self.url = "/api/v1/pastes/"
예제 #8
0
def user() -> settings.AUTH_USER_MODEL:
    return UserFactory()
예제 #9
0
 def setUp(self) -> None:
     self.user = UserFactory()
     self.url = "/api/v1/users/"
     UserFactory.create_batch(5)