parent
1e15a49ac5
commit
7bf9951122
8 changed files with 318 additions and 20 deletions
@ -1 +1,2 @@ |
|||||||
from .test_models import * |
# from .test_models import * |
||||||
|
from .test_views import * |
||||||
|
|||||||
@ -0,0 +1,100 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from city.models import City |
||||||
|
from country.models import Country |
||||||
|
from django.core.urlresolvers import reverse |
||||||
|
from django.test import TestCase |
||||||
|
from django.utils.translation import ugettext as _ |
||||||
|
from functions.views_help import get_side_items |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceByTest(object): |
||||||
|
"""Функционал 'абстрактного' класса ConferenceBy""" |
||||||
|
def setUp(self): |
||||||
|
self.response = self.client.get(self.url) |
||||||
|
|
||||||
|
def test_template(self): |
||||||
|
self.assertTemplateUsed( |
||||||
|
self.response, |
||||||
|
'client/conference/conference_by.html' |
||||||
|
) |
||||||
|
|
||||||
|
def test_is_available(self): |
||||||
|
self.assertEqual(self.response.status_code, 200) |
||||||
|
|
||||||
|
def test_titles(self): |
||||||
|
self.assertContains(self.response, self.title1) |
||||||
|
self.assertContains(self.response, self.title2) |
||||||
|
|
||||||
|
def test_link(self): |
||||||
|
link = '/conference/%s' % (self.catalog, ) |
||||||
|
self.assertContains(self.response, link) |
||||||
|
|
||||||
|
def test_queryset(self): |
||||||
|
obj_list = self.response.context[-1].get('object_list') |
||||||
|
for obj in obj_list: |
||||||
|
self.assertContains( |
||||||
|
self.response, obj.name |
||||||
|
) |
||||||
|
self.assertContains( |
||||||
|
self.response, obj.url |
||||||
|
) |
||||||
|
|
||||||
|
class CanFilterAndSidePopular(object): |
||||||
|
"""Функционал can_filter and side_popular in get_context_data""" |
||||||
|
def test_can_filter(self): |
||||||
|
text = 'ВЫБРАТЬ ПО КРИТЕРИЯМ:' |
||||||
|
can_filter = self.response.context[-1].get('can_filter', None) |
||||||
|
if can_filter is False: |
||||||
|
self.assertNotContains(self.response, text) |
||||||
|
elif can_filter is True: |
||||||
|
self.assertContains(self.response, text) |
||||||
|
|
||||||
|
def test_side_popular(self): |
||||||
|
side_popular = get_side_items('conf', self.model) |
||||||
|
for popular in side_popular: |
||||||
|
self.assertContains(self.response, popular.get('url')) |
||||||
|
self.assertContains(self.response, popular.get('name')) |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceByCountryTest(ConferenceByTest, CanFilterAndSidePopular, TestCase): |
||||||
|
url = reverse('conference_country') |
||||||
|
title1 = _(u'По странам') |
||||||
|
title2 = _(u'Коференции мира по странам') |
||||||
|
catalog = 'country/' |
||||||
|
model = Country |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceByThemeTest(ConferenceByTest, TestCase): |
||||||
|
url = reverse('conference_theme') |
||||||
|
title1 = _(u'По тематикам') |
||||||
|
title2 = _(u'Коференции мира по тематикам') |
||||||
|
catalog = 'theme/' |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceByTagTest(ConferenceByTest, TestCase): |
||||||
|
url = reverse('conference_tag') |
||||||
|
title1 = _(u'По тегам') |
||||||
|
title2 = _(u'Коференции мира по тегам') |
||||||
|
catalog = 'tag/' |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceByCityTest(ConferenceByTest, CanFilterAndSidePopular, TestCase): |
||||||
|
url = reverse('conference_city') |
||||||
|
title1 = _(u'По городам') |
||||||
|
title2 = _(u'Коференции мира по городам') |
||||||
|
catalog = 'city/' |
||||||
|
model = City |
||||||
|
|
||||||
|
|
||||||
|
class ConferenceCatalogTest(object): |
||||||
|
def test_template(self): |
||||||
|
self.assertTemplateUsed( |
||||||
|
self.response, |
||||||
|
'client/conference/catalog.html' |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
# class ConferenceCountryCatalogTest(ConferenceCatalogTest, TestCase): |
||||||
|
# def setUp(self): |
||||||
|
# url = reverse('conference_country_catalog', args=[]) |
||||||
|
# self.response = self.client.get(url) |
||||||
Loading…
Reference in new issue