import json from django.contrib.auth import get_user_model from django.contrib.auth.models import Group, Permission from django.core.files.uploadedfile import SimpleUploadedFile from django.template.defaultfilters import filesizeformat from django.test import TestCase, override_settings from django.urls import reverse from mock import patch from wagtail.models import Collection, GroupCollectionPermission from wagtail.test.utils import WagtailTestUtils from tests.utils import create_test_video_file from wagtailvideos.models import Video class TestVideoIndexView(WagtailTestUtils, TestCase): def setUp(self): self.login() def get(self, params={}): return self.client.get(reverse("wagtailvideos:index"), params) def test_simple(self): response = self.get() self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "wagtailvideos/videos/index.html") self.assertContains(response, "Add a video") def test_search(self): response = self.get({"q": "Hello"}) self.assertEqual(response.status_code, 200) self.assertEqual(response.context["query_string"], "Hello") def test_pagination(self): pages = ["0", "1", "-1", "9999", "Not a page"] for page in pages: response = self.get({"p": page}) self.assertEqual(response.status_code, 200) def test_ordering(self): orderings = ["title", "-created_at"] for ordering in orderings: response = self.get({"ordering": ordering}) self.assertEqual(response.status_code, 200) class TestVideoAddView(TestCase, WagtailTestUtils): def setUp(self): self.login() def get(self, params={}): return self.client.get(reverse("wagtailvideos:add"), params) def post(self, post_data={}): return self.client.post(reverse("wagtailvideos:add"), post_data) def test_get(self): response = self.get() self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "wagtailvideos/videos/add.html") # as standard, only the root collection exists and so no 'Collection' option # is displayed on the form self.assertNotContains( response, '