diff --git a/fet2020/tests/test_posts.py b/fet2020/tests/test_posts.py new file mode 100644 index 00000000..72b0e93e --- /dev/null +++ b/fet2020/tests/test_posts.py @@ -0,0 +1,93 @@ +import pytest +from posts.models import News, Post, Event, FetMeeting +from django.urls import reverse +from django.core.validators import ValidationError +import datetime +from urllib.request import URLError + +@pytest.fixture +def post(db): + return Post(title="asdf", post_type="N") + +@pytest.fixture +def post_saved(post): + post.save() + return post + +@pytest.fixture +def fetmeeting(db): + return FetMeeting(event_start = datetime.datetime(2020,1,1,18,0)) + +@pytest.fixture +def fetmeeting_saved(fetmeeting): + fetmeeting.save() + return fetmeeting + +def test_true(): + assert True + + +class TestPostModel: + def test_model(self, post): + assert isinstance(post,Post) + + def test_model_id(self, post_saved): + assert post_saved.id==1 + + def test_model_notnews(self, post): + assert not isinstance(post, News) + + def test_post_slug_default(self, post_saved): + assert "asdf" in post_saved.slug + + def test_url_attribute(self, post_saved): + assert reverse("posts.show", kwargs={"id": post_saved.slug}) == post_saved.url + + def test_default_hidden(self, post_saved): + assert post_saved.is_hidden==False + + def test_default_pinned(self, post_saved): + assert post_saved.is_pinned==False + + def test_validate_title(self, post): + post.title="" + with pytest.raises(ValidationError): + post.full_clean() + + def test_validate_eventdate(self, post): + post.event_start=datetime.datetime(2020,10,1,18,0) + post.event_end=datetime.datetime(2020,10,1,19,0) + post.full_clean() + assert True + + def test_clean_post(self, post): + post.full_clean() + assert True + +class TestPostEtherpad: + def test_agenda_id(self,post_saved): + assert post_saved.slug in str(post_saved.get_agenda_key()) + + def test_protocol_id(self,post_saved): + assert post_saved.slug in str(post_saved.get_protocol_key()) + +class TestFetmeetingModel: + def test_clean_fetmeeting(self, fetmeeting): + fetmeeting.save() + assert True + + #Test Defaults for Fetmeeting + def test_title(self, fetmeeting): + fetmeeting.save() + assert fetmeeting.title=="Fachschaftssitzung" + def test_slug(self, fetmeeting_saved): + assert "fachschaftssitzung" in fetmeeting_saved.slug + + def test_sitzung_end(self, fetmeeting_saved): + assert datetime.datetime(2020,1,1,20,0)==fetmeeting_saved.event_end + + def test_sitzung_start(self, fetmeeting_saved): + assert datetime.datetime(2020,1,1,18,0)==fetmeeting_saved.event_start + + def test_post_type(self, fetmeeting_saved): + assert fetmeeting_saved.post_type == "F" \ No newline at end of file