fix some tests

This commit is contained in:
imperosol 2025-01-27 16:10:18 +01:00
parent 3eee06becd
commit d4628c49bd
4 changed files with 42 additions and 8 deletions

View File

@ -64,6 +64,40 @@ class TestImageAccess:
assert not picture.is_owned_by(user)
@pytest.mark.django_db
class TestUserPicture:
def test_anonymous_user_unauthorized(self, client):
"""An anonymous user shouldn't have access to an user's photo page."""
response = client.get(
reverse(
"core:user_pictures",
kwargs={"user_id": User.objects.get(username="sli").pk},
)
)
assert response.status_code == 403
@pytest.mark.parametrize(
("username", "status"),
[
("guy", 403),
("root", 200),
("skia", 200),
("sli", 200),
],
)
def test_page_is_working(self, client, username, status):
"""Only user that subscribed (or admins) should be able to see the page."""
# Test for simple user
client.force_login(User.objects.get(username=username))
response = client.get(
reverse(
"core:user_pictures",
kwargs={"user_id": User.objects.get(username="sli").pk},
)
)
assert response.status_code == status
# TODO: many tests on the pages:
# - renaming a page
# - changing a page's parent --> check that page's children's full_name

View File

@ -19,6 +19,7 @@ from core.baker_recipes import (
from core.models import Group, User
from counter.models import Counter, Refilling, Selling
from eboutic.models import Invoice, InvoiceItem
from sas.models import Picture
class TestSearchUsers(TestCase):
@ -26,6 +27,7 @@ class TestSearchUsers(TestCase):
def setUpTestData(cls):
# News.author has on_delete=PROTECT, so news must be deleted beforehand
News.objects.all().delete()
Picture.objects.all().delete() # same for pictures
User.objects.all().delete()
user_recipe = Recipe(
User,

View File

@ -58,7 +58,7 @@ class TestPictureSearch(TestSas):
self.client.force_login(self.user_b)
res = self.client.get(self.url + f"?album_id={self.album_a.id}")
assert res.status_code == 200
expected = list(self.album_a.children_pictures.values_list("id", flat=True))
expected = list(self.album_a.pictures.values_list("id", flat=True))
assert [i["id"] for i in res.json()["results"]] == expected
def test_filter_by_user(self):
@ -67,7 +67,7 @@ class TestPictureSearch(TestSas):
assert res.status_code == 200
expected = list(
self.user_a.pictures.order_by(
"-picture__parent__date", "picture__date"
"-picture__parent__event_date", "picture__created_at"
).values_list("picture_id", flat=True)
)
assert [i["id"] for i in res.json()["results"]] == expected
@ -81,7 +81,7 @@ class TestPictureSearch(TestSas):
assert res.status_code == 200
expected = list(
self.user_a.pictures.union(self.user_b.pictures.all())
.order_by("-picture__parent__date", "picture__date")
.order_by("-picture__parent__event_date", "picture__created_at")
.values_list("picture_id", flat=True)
)
assert [i["id"] for i in res.json()["results"]] == expected
@ -94,7 +94,7 @@ class TestPictureSearch(TestSas):
assert res.status_code == 200
expected = list(
self.user_a.pictures.order_by(
"-picture__parent__date", "picture__date"
"-picture__parent__event_date", "picture__created_at"
).values_list("picture_id", flat=True)
)
assert [i["id"] for i in res.json()["results"]] == expected
@ -120,7 +120,7 @@ class TestPictureSearch(TestSas):
assert res.status_code == 200
expected = list(
self.user_b.pictures.intersection(self.user_a.pictures.all())
.order_by("-picture__parent__date", "picture__date")
.order_by("-picture__parent__event_date", "picture__created_at")
.values_list("picture_id", flat=True)
)
assert [i["id"] for i in res.json()["results"]] == expected

View File

@ -70,9 +70,7 @@ def test_album_access_non_subscriber(client: Client):
class TestSasModeration(TestCase):
@classmethod
def setUpTestData(cls):
album = baker.make(
Album, parent_id=settings.SITH_SAS_ROOT_DIR_ID, is_moderated=True
)
album = baker.make(Album)
cls.pictures = picture_recipe.make(
parent=album, _quantity=10, _bulk_create=True
)