"""
Tests for my card list view.
"""
from django.test import RequestFactory
from django.urls import reverse
from django.contrib.auth.models import AnonymousUser

from django_mock_queries.query import MockSet
from django_mock_queries.query import MockModel

from cards.views import MyCardListView
from users.models import User


def test_my_card_list_queryset(mocker):
    user = User(username="test", email="test@example.com")
    user_card = MockModel(mock_name="user card", user=user)
    cards_qs = MockSet(
        MockModel(mock_name="anonymous user card", user=AnonymousUser()),
        user_card,
    )
    mocker.patch("cards.views.Card.objects", cards_qs)
    request = RequestFactory().get(reverse("cards:my-card-list"))
    request.user = user

    view = MyCardListView()
    view.setup(request)
    queryset = view.get_queryset()

    assert list(queryset) == [user_card]
