from django.test import TestCase

import pytest
from django.urls import reverse

from bs4 import BeautifulSoup

from generic.models import ExamCollection

import datetime

class TestExamCollections:
    def test_list_url(self, db, client):
        # Test with no content
        response = client.get(reverse("generic:examcollection_list"))
        assert response.status_code == 200
        soup = BeautifulSoup(response.content, "html.parser")
        assert "No exam collections yet" in soup.text

        # No content yet so this should fail
        response = client.get(reverse("generic:examcollection_detail", args=( 1, )))
        assert response.status_code == 404

        collection = ExamCollection.objects.create(name="test collection", date=datetime.date.today())

        response = client.get(reverse("generic:examcollection_list"))
        assert response.status_code == 200
        soup = BeautifulSoup(response.content, "html.parser")
        assert collection.name in soup.find("li", class_="collection").text


        response = client.get(reverse("generic:examcollection_detail", args=( collection.pk, )))
        assert response.status_code == 200
        soup = BeautifulSoup(response.content, "html.parser")
        assert collection.name in soup.find("h1").text