diff --git a/categories/tests/test_admin.py b/categories/tests/test_admin.py index 897a9fe..fb2e05a 100644 --- a/categories/tests/test_admin.py +++ b/categories/tests/test_admin.py @@ -31,6 +31,10 @@ class TestCategoryAdmin(TestCase): 'order': 0, 'slug': 'parent', '_save': '_save', + 'categoryrelation_set-TOTAL_FORMS': '0', + 'categoryrelation_set-INITIAL_FORMS': '0', + 'categoryrelation_set-MIN_NUM_FORMS': '1000', + 'categoryrelation_set-MAX_NUM_FORMS': '1000', } resp = self.client.post(url, data=data) self.assertEqual(resp.status_code, 302) diff --git a/categories/tests/test_mgmt_commands.py b/categories/tests/test_mgmt_commands.py new file mode 100644 index 0000000..4646baf --- /dev/null +++ b/categories/tests/test_mgmt_commands.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +from django.core import management +from django.core.management.base import CommandError +from django.test import TestCase + + +class TestMgmtCommands(TestCase): + + def test_add_category_fields(self): + management.call_command('add_category_fields', verbosity=0, interactive=False) + + def test_add_category_fields_app(self): + management.call_command('add_category_fields', 'flatpages', verbosity=0, interactive=False) + + def test_drop_category_field(self): + management.call_command('drop_category_field', 'flatpages', 'flatpage', 'category', verbosity=0, interactive=False) + + def test_drop_category_field_error(self): + self.assertRaises(CommandError, management.call_command, 'drop_category_field', verbosity=0, interactive=False) diff --git a/categories/tests/test_views.py b/categories/tests/test_views.py new file mode 100644 index 0000000..d64435b --- /dev/null +++ b/categories/tests/test_views.py @@ -0,0 +1,83 @@ +from django.http import Http404 +from django.contrib.auth.models import AnonymousUser +from django.test import Client, TestCase, RequestFactory +from categories.models import Category, CategoryRelation +from categories import views + + +class MyCategoryRelationView(views.CategoryRelatedDetail): + model = CategoryRelation + + +class TestCategoryViews(TestCase): + fixtures = ['musicgenres.json', ] + + def setUp(self): + self.client = Client() + self.factory = RequestFactory() + + def test_category_detail(self): + cat0 = Category.objects.get(slug='country', level=0) + cat1 = cat0.children.get(slug='country-pop') + cat2 = Category.objects.get(slug='urban-cowboy') + url = cat0.get_absolute_url() + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + url = cat1.get_absolute_url() + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + url = cat2.get_absolute_url() + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + response = self.client.get("%sfoo/" % url) + self.assertEquals(response.status_code, 404) + + def test_get_category_for_path(self): + cat0 = Category.objects.get(slug='country', level=0) + cat1 = cat0.children.get(slug='country-pop') + cat2 = Category.objects.get(slug='urban-cowboy') + + result = views.get_category_for_path('/country/country-pop/urban-cowboy/') + self.assertEquals(result, cat2) + result = views.get_category_for_path('/country/country-pop/') + self.assertEquals(result, cat1) + result = views.get_category_for_path('/country/') + self.assertEquals(result, cat0) + + def test_categorydetailview(self): + request = self.factory.get('') + request.user = AnonymousUser() + self.assertRaises(AttributeError, views.CategoryDetailView.as_view(), request) + + request = self.factory.get('') + request.user = AnonymousUser() + response = views.CategoryDetailView.as_view()(request, path='/country/country-pop/urban-cowboy/') + self.assertEquals(response.status_code, 200) + + request = self.factory.get('') + request.user = AnonymousUser() + self.assertRaises(Http404, views.CategoryDetailView.as_view(), request, path='/country/country-pop/foo/') + + def test_categoryrelateddetailview(self): + from simpletext.models import SimpleText + stext = SimpleText.objects.create( + name='Test', + description='test description' + ) + cat = Category.objects.get(slug='urban-cowboy') + cat_rel = CategoryRelation.objects.create( # NOQA + category=cat, + content_object=stext + ) + request = self.factory.get('') + request.user = AnonymousUser() + self.assertRaises(AttributeError, MyCategoryRelationView.as_view(), request) + + request = self.factory.get('') + request.user = AnonymousUser() + response = MyCategoryRelationView.as_view()(request, category_path='/country/country-pop/urban-cowboy/') + self.assertEquals(response.status_code, 200) + + request = self.factory.get('') + request.user = AnonymousUser() + self.assertRaises(Http404, MyCategoryRelationView.as_view(), request, category_path='/country/country-pop/foo/')