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