def test_add_to_favourite(self, user, test_adverts): Favourite.add_to_favourite(user_id=user.id, adverts=test_adverts) added_adverts = Favourite.objects.select_related( "adverts").values_list("adverts__place", "adverts__price", "adverts__area") expected_adverts = test_adverts.values_list("place", "price", "area") assert list(added_adverts) == list(expected_adverts)
def test_remove_from_favourite_when_object_not_in_favourites( self, user, test_adverts): advert = Advert.objects.filter(place="Dębe Wielkie") Favourite.remove_from_favourite(user_id=user.id, adverts=advert) result_adverts = Favourite.objects.select_related( "adverts").values_list("adverts__place", "adverts__price", "adverts__area") assert list(result_adverts) == [] assert len(result_adverts) == 0
def test_remove_from_favourite_with_empty_list(self, user, test_adverts, add_favourites): Favourite.remove_from_favourite(user_id=user.id, adverts=[]) result_adverts = Favourite.objects.select_related( "adverts").values_list("adverts__place", "adverts__price", "adverts__area") expected_adverts = test_adverts.values_list("place", "price", "area") assert list(result_adverts) == list(expected_adverts) assert len(result_adverts) == 3
def test_remove_from_favourite(self, user, test_adverts, add_favourites): advert = Advert.objects.filter(place="Dębe Wielkie") Favourite.remove_from_favourite(user_id=user.id, adverts=advert) result_adverts = Favourite.objects.select_related( "adverts").values_list("adverts__place", "adverts__price", "adverts__area") expected_adverts = test_adverts.exclude( place="Dębe Wielkie").values_list("place", "price", "area") assert list(result_adverts) == list(expected_adverts) assert len(result_adverts) == 2
def test_save_advert(self, user, client): pk = Advert.objects.get(place="Dębe Wielkie").id response = client.post( reverse("parcels:save_advert", kwargs={"pk": pk}), HTTP_REFERER="http://foo/bar", ) assert response.status_code == 302 assert list(Favourite.get_favourites( user.id).values_list("place")) == [("Dębe Wielkie", )]
def get_adverts(request: WSGIRequest) -> QuerySet: if request.session.get("view_name", None) == "favourites": search_text = request.GET.get("search_text", None) return Favourite.get_favourites( user_id=request.user.id, search_text=search_text ) return Advert.filter_adverts( place=request.GET.get("place", None), price=request.GET.get("price", 0), area=request.GET.get("area", 0), search_text=request.GET.get("search_text", None), )
def add_favourites(user, test_adverts): Favourite.add_to_favourite(user_id=user.id, adverts=test_adverts)
def test_add_to_favourite_with_empty_list(self, user): Favourite.add_to_favourite(user_id=user.id, adverts=[]) added_adverts = Favourite.objects.select_related( "adverts").values_list("adverts__place", "adverts__price", "adverts__area") assert list(added_adverts) == [(None, None, None)]
def test_get_favourites_when_user_do_not_exist(self): result_advert = Favourite.get_favourites(user_id=100) assert list(result_advert) == [] assert isinstance(result_advert, Iterable)
def test_get_favourites(self, user, test_adverts, add_favourites): result_adverts = Favourite.get_favourites(user_id=user.id) for result, expected in zip(result_adverts, test_adverts): assert result == expected assert len(result_adverts) == 3
def test_delete_all_adverts(self, user, client, add_favourites): response = client.post(reverse("parcels:delete_all_adverts"), HTTP_REFERER="http://foo/bar") assert response.status_code == 302 assert list(Favourite.get_favourites( user.id).values_list("place")) == []