Beispiel #1
0
 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)
Beispiel #2
0
 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
Beispiel #3
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
Beispiel #4
0
 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
Beispiel #5
0
 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", )]
Beispiel #6
0
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),
    )
Beispiel #7
0
def add_favourites(user, test_adverts):
    Favourite.add_to_favourite(user_id=user.id, adverts=test_adverts)
Beispiel #8
0
 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)]
Beispiel #9
0
 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)
Beispiel #10
0
 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
Beispiel #11
0
 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")) == []