0.2.3 #99
4 changed files with 55 additions and 62 deletions
|
|
@ -3,22 +3,73 @@ from django.urls import reverse
|
||||||
|
|
||||||
from newsreader.accounts.tests.factories import UserFactory
|
from newsreader.accounts.tests.factories import UserFactory
|
||||||
from newsreader.news.collection.tests.factories import CollectionRuleFactory
|
from newsreader.news.collection.tests.factories import CollectionRuleFactory
|
||||||
|
from newsreader.news.core.models import Category
|
||||||
from newsreader.news.core.tests.factories import CategoryFactory
|
from newsreader.news.core.tests.factories import CategoryFactory
|
||||||
|
|
||||||
|
|
||||||
class CategoryUpdateViewTestCase(TestCase):
|
class CategoryViewTestCase:
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.user = UserFactory(password="test")
|
self.user = UserFactory(password="test")
|
||||||
self.client.login(email=self.user.email, password="test")
|
self.client.login(email=self.user.email, password="test")
|
||||||
|
|
||||||
self.category = CategoryFactory(name="category", user=self.user)
|
|
||||||
self.url = reverse("category-update", args=[self.category.pk])
|
|
||||||
|
|
||||||
def test_simple(self):
|
def test_simple(self):
|
||||||
response = self.client.get(self.url)
|
response = self.client.get(self.url)
|
||||||
|
|
||||||
self.assertEquals(response.status_code, 200)
|
self.assertEquals(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
|
class CategoryCreateViewTestCase(CategoryViewTestCase, TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
self.url = reverse("category-create")
|
||||||
|
|
||||||
|
def test_creation(self):
|
||||||
|
rules = CollectionRuleFactory.create_batch(size=4, user=self.user)
|
||||||
|
|
||||||
|
data = {"name": "new-category", "rules": [rule.pk for rule in rules]}
|
||||||
|
response = self.client.post(self.url, data)
|
||||||
|
|
||||||
|
self.assertEquals(response.status_code, 302)
|
||||||
|
|
||||||
|
category = Category.objects.get(name="new-category")
|
||||||
|
|
||||||
|
self.assertCountEqual(category.rule_ids, [rule.pk for rule in rules])
|
||||||
|
|
||||||
|
def test_collection_rules_only_from_user(self):
|
||||||
|
other_user = UserFactory()
|
||||||
|
other_rules = CollectionRuleFactory.create_batch(size=4, user=other_user)
|
||||||
|
|
||||||
|
response = self.client.get(self.url)
|
||||||
|
|
||||||
|
for rule in other_rules:
|
||||||
|
self.assertNotContains(response, rule.name)
|
||||||
|
|
||||||
|
def test_creation_with_other_user_rules(self):
|
||||||
|
other_user = UserFactory()
|
||||||
|
other_rules = CollectionRuleFactory.create_batch(
|
||||||
|
size=4, user=other_user, category=None
|
||||||
|
)
|
||||||
|
|
||||||
|
user_rules = CollectionRuleFactory.create_batch(
|
||||||
|
size=3, user=self.user, category=None
|
||||||
|
)
|
||||||
|
|
||||||
|
data = {"name": "new-category", "rules": [rule.pk for rule in other_rules]}
|
||||||
|
|
||||||
|
response = self.client.post(self.url, data)
|
||||||
|
|
||||||
|
self.assertContains(response, "not one of the available choices")
|
||||||
|
self.assertEquals(Category.objects.count(), 0)
|
||||||
|
|
||||||
|
|
||||||
|
class CategoryUpdateViewTestCase(CategoryViewTestCase, TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
self.category = CategoryFactory(name="category", user=self.user)
|
||||||
|
self.url = reverse("category-update", args=[self.category.pk])
|
||||||
|
|
||||||
def test_name_change(self):
|
def test_name_change(self):
|
||||||
data = {"name": "durp"}
|
data = {"name": "durp"}
|
||||||
self.client.post(self.url, data)
|
self.client.post(self.url, data)
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
from django.test import Client, TestCase
|
|
||||||
from django.urls import reverse
|
|
||||||
|
|
||||||
from newsreader.accounts.tests.factories import UserFactory
|
|
||||||
from newsreader.news.collection.tests.factories import CollectionRuleFactory
|
|
||||||
from newsreader.news.core.models import Category
|
|
||||||
from newsreader.news.core.tests.factories import CategoryFactory
|
|
||||||
|
|
||||||
|
|
||||||
class CategoryCreateViewTestCase(TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
self.user = UserFactory(password="test")
|
|
||||||
self.client.login(email=self.user.email, password="test")
|
|
||||||
|
|
||||||
self.url = reverse("category-create")
|
|
||||||
|
|
||||||
def test_simple(self):
|
|
||||||
response = self.client.get(self.url)
|
|
||||||
|
|
||||||
self.assertEquals(response.status_code, 200)
|
|
||||||
|
|
||||||
def test_creation(self):
|
|
||||||
rules = CollectionRuleFactory.create_batch(size=4, user=self.user)
|
|
||||||
|
|
||||||
data = {"name": "new-category", "rules": [rule.pk for rule in rules]}
|
|
||||||
response = self.client.post(self.url, data)
|
|
||||||
|
|
||||||
self.assertEquals(response.status_code, 302)
|
|
||||||
|
|
||||||
category = Category.objects.get(name="new-category")
|
|
||||||
|
|
||||||
self.assertCountEqual(category.rule_ids, [rule.pk for rule in rules])
|
|
||||||
|
|
||||||
def test_collection_rules_only_from_user(self):
|
|
||||||
other_user = UserFactory()
|
|
||||||
other_rules = CollectionRuleFactory.create_batch(size=4, user=other_user)
|
|
||||||
|
|
||||||
response = self.client.get(self.url)
|
|
||||||
|
|
||||||
for rule in other_rules:
|
|
||||||
self.assertNotContains(response, rule.name)
|
|
||||||
|
|
||||||
def test_creation_with_other_user_rules(self):
|
|
||||||
other_user = UserFactory()
|
|
||||||
other_rules = CollectionRuleFactory.create_batch(
|
|
||||||
size=4, user=other_user, category=None
|
|
||||||
)
|
|
||||||
|
|
||||||
user_rules = CollectionRuleFactory.create_batch(
|
|
||||||
size=3, user=self.user, category=None
|
|
||||||
)
|
|
||||||
|
|
||||||
data = {"name": "new-category", "rules": [rule.pk for rule in other_rules]}
|
|
||||||
|
|
||||||
response = self.client.post(self.url, data)
|
|
||||||
|
|
||||||
self.assertContains(response, "not one of the available choices")
|
|
||||||
self.assertEquals(Category.objects.count(), 0)
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue