Skip to content

Commit

Permalink
[-] Added additional test coverage for management commands and views
Browse files Browse the repository at this point in the history
  • Loading branch information
coordt committed Oct 13, 2017
1 parent ec4664c commit 63bb31d
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 0 deletions.
4 changes: 4 additions & 0 deletions categories/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ def test_adding_parent_and_child(self):
'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)
Expand Down
20 changes: 20 additions & 0 deletions categories/tests/test_mgmt_commands.py
Original file line number Diff line number Diff line change
@@ -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)
83 changes: 83 additions & 0 deletions categories/tests/test_views.py
Original file line number Diff line number Diff line change
@@ -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/')

0 comments on commit 63bb31d

Please sign in to comment.