You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
257 lines
8.2 KiB
257 lines
8.2 KiB
import datetime
|
|
|
|
from django.core.urlresolvers import reverse, NoReverseMatch
|
|
from django.test import TestCase
|
|
from expobanner.models import Paid, Banner
|
|
from stats_collector.models import ObjectStats
|
|
from theme.models import Tag, Theme
|
|
|
|
from ..models import Conference, Speaker, Statistic, TimeTable
|
|
from city.models import City
|
|
from country.models import Country
|
|
from events.models import TargetAudience
|
|
|
|
|
|
class ConferenceTest(TestCase):
|
|
def setUp(self):
|
|
self.conference = Conference.objects.create(
|
|
name='New Conference',
|
|
data_begin=datetime.datetime.now(),
|
|
data_end=datetime.timedelta(24)+datetime.datetime.now(),
|
|
country=Country.objects.all()[0],
|
|
city=City.objects.all()[0],
|
|
|
|
url='new-conference',
|
|
services=b'0001000'
|
|
)
|
|
|
|
def test_a_conference_create(self):
|
|
conference_count = Conference.objects.all().count()
|
|
Conference.objects.create(
|
|
name='New Conference',
|
|
data_begin=datetime.datetime.now(),
|
|
data_end=datetime.timedelta(24)+datetime.datetime.now(),
|
|
country=Country.objects.all()[0],
|
|
city=City.objects.all()[0]
|
|
)
|
|
new_conference_count = Conference.objects.all().count()
|
|
|
|
self.assertEqual(conference_count + 1, new_conference_count)
|
|
|
|
def test_save_conference_info(self):
|
|
name = 'New Conference'
|
|
datetime_now = datetime.datetime.now()
|
|
data_begin = datetime_now
|
|
data_end = datetime.timedelta(24) + datetime_now
|
|
country = Country.objects.all()[0]
|
|
city = City.objects.all()[0]
|
|
|
|
new_conference = Conference.objects.create(
|
|
name=name,
|
|
data_begin=data_begin,
|
|
data_end=data_end,
|
|
country=country,
|
|
city=city
|
|
|
|
)
|
|
|
|
self.assertEqual(name, new_conference.name)
|
|
self.assertEqual(data_begin, new_conference.data_begin)
|
|
self.assertEqual(data_end, new_conference.data_end)
|
|
self.assertEqual(country, new_conference.country)
|
|
self.assertEqual(city, new_conference.city)
|
|
|
|
def test_method_unicode(self):
|
|
self.assertEqual(
|
|
str(self.conference),
|
|
self.conference.lazy_translation_getter(
|
|
'name', unicode(self.conference.pk))
|
|
)
|
|
|
|
def test_method_get_news_url(self):
|
|
self.assertEqual(
|
|
self.conference.get_news_url(),
|
|
reverse('news_conference', kwargs={'slug': self.conference.url})
|
|
)
|
|
|
|
def test_method_get_audience(self):
|
|
self.assertFalse(self.conference.get_audience())
|
|
|
|
self.conference.audience.add(
|
|
TargetAudience.objects.create(title='All'))
|
|
audience = TargetAudience.objects.filter(title='All')[0]
|
|
|
|
self.assertIn(audience, self.conference.get_audience())
|
|
|
|
def test_method_get_calendar_url(self):
|
|
self.assertEqual(
|
|
self.conference.get_calendar_url(),
|
|
reverse('conference_add_calendar', args=[self.conference.id])
|
|
)
|
|
|
|
def test_method_get_visit_url(self):
|
|
self.assertEqual(
|
|
self.conference.get_visit_url(),
|
|
reverse(
|
|
'events:event_visit',
|
|
args=['conference', self.conference.id]
|
|
)
|
|
)
|
|
|
|
def test_method_tags(self):
|
|
self.assertFalse(self.conference.tags())
|
|
|
|
theme = Theme.objects.create(
|
|
name='Theme name', main_title='Theme title'
|
|
)
|
|
tag = Tag.objects.create(
|
|
name='Tag name', main_title='Tag title', theme=theme
|
|
)
|
|
self.conference.tag.add(tag)
|
|
|
|
self.assertIn(tag, self.conference.tags())
|
|
|
|
def test_method_get_index_text(self):
|
|
self.assertIn(
|
|
self.conference.name,
|
|
self.conference.get_index_text()
|
|
)
|
|
|
|
title = 'Conf Title'
|
|
self.conference.main_title = title
|
|
self.conference.save()
|
|
|
|
self.assertIn(title, self.conference.get_index_text())
|
|
|
|
theme_name = 'Theme name'
|
|
theme = Theme.objects.create(
|
|
name=theme_name, main_title='Theme title'
|
|
)
|
|
tag_name = 'Tag name'
|
|
tag = Tag.objects.create(
|
|
name=tag_name, main_title='Tag title', theme=theme
|
|
)
|
|
self.conference.tag.add(tag)
|
|
|
|
self.assertIn(tag_name, self.conference.get_index_text())
|
|
|
|
self.conference.theme.add(theme)
|
|
|
|
self.assertIn(theme_name, self.conference.get_index_text())
|
|
|
|
def test_method_upload_photo_url(self):
|
|
self.assertEqual(
|
|
reverse('conference_upload_photo', args=[self.conference.id]),
|
|
self.conference.upload_photo_url()
|
|
)
|
|
|
|
def test_method_clicks(self):
|
|
with self.assertRaises(AttributeError):
|
|
self.conference.clicks()
|
|
|
|
ticket_url = 'ticket_url/'
|
|
ticket = Banner.objects.create_for_paid(
|
|
self.conference, ticket_url, 'tickets')
|
|
official_url = 'official_url/'
|
|
official = Banner.objects.create_for_paid(
|
|
self.conference, official_url, 'official')
|
|
paid = Paid.objects.create(
|
|
tickets=ticket, official=official, catalog=ticket)
|
|
|
|
self.conference.paid_new = paid
|
|
self.conference.save()
|
|
|
|
self.assertEqual(self.conference.clicks(), 0)
|
|
|
|
self.client.get(ticket.get_click_link())
|
|
|
|
self.assertEqual(self.conference.clicks(), 1)
|
|
|
|
self.client.get(official.get_click_link())
|
|
|
|
self.assertEqual(self.conference.clicks(), 2)
|
|
|
|
def test_method_get_paid_change_url(self):
|
|
try:
|
|
self.conference.get_paid_change_url()
|
|
except NoReverseMatch:
|
|
pass
|
|
|
|
ticket = Banner.objects.create_for_paid(
|
|
self.conference, 'ticket_url', 'tickets')
|
|
official = Banner.objects.create_for_paid(
|
|
self.conference, 'official_url', 'official')
|
|
paid = Paid.objects.create(
|
|
tickets=ticket, official=official, catalog=official)
|
|
|
|
self.conference.paid_new = paid
|
|
self.conference.save()
|
|
|
|
self.assertEqual(
|
|
self.conference.get_paid_change_url(),
|
|
reverse('confbanner-update_paid',
|
|
args=[self.conference.paid_new.id])
|
|
)
|
|
|
|
def test_method_get_objectstat_views(self):
|
|
self.assertEqual(
|
|
self.conference.get_objectstat_views(),
|
|
sum(ObjectStats.objects.filter(
|
|
conference=self.conference).values_list('value', flat=True))
|
|
)
|
|
|
|
|
|
class SpeakerTest(TestCase):
|
|
def test_create_speaker(self):
|
|
speacers = Speaker.objects.all().count()
|
|
Speaker.objects.create(fullname='Hgangu Piter')
|
|
speacers_plus_one = Speaker.objects.all().count()
|
|
|
|
self.assertEqual(speacers + 1, speacers_plus_one)
|
|
|
|
def test_method_unicode(self):
|
|
fullname = 'Hgangu Piter'
|
|
speaker = Speaker.objects.create(fullname=fullname)
|
|
self.assertEqual(str(speaker), fullname)
|
|
|
|
|
|
class StatisticTest(TestCase):
|
|
def test_create_statistic(self):
|
|
stats = Statistic.objects.all().count()
|
|
conf = Conference.objects.create(
|
|
name='New Conference',
|
|
data_begin=datetime.datetime.now(),
|
|
data_end=datetime.timedelta(24)+datetime.datetime.now(),
|
|
country=Country.objects.all()[0],
|
|
city=City.objects.all()[0]
|
|
)
|
|
Statistic.objects.create(
|
|
conference=conf,
|
|
year=datetime.datetime.now().year,
|
|
countries='Monaco'
|
|
)
|
|
stats_plus_one = Statistic.objects.all().count()
|
|
|
|
self.assertEqual(stats + 1, stats_plus_one)
|
|
|
|
|
|
class TimeTableTest(TestCase):
|
|
def test_create_timetable(self):
|
|
tables = TimeTable.objects.all().count()
|
|
conf = Conference.objects.create(
|
|
name='New Conference',
|
|
data_begin=datetime.datetime.now(),
|
|
data_end=datetime.timedelta(24) + datetime.datetime.now(),
|
|
country=Country.objects.all()[0],
|
|
city=City.objects.all()[0]
|
|
)
|
|
TimeTable.objects.create(
|
|
conference=conf,
|
|
begin=datetime.datetime.now(),
|
|
end=datetime.timedelta(24) + datetime.datetime.now(),
|
|
name='All times'
|
|
)
|
|
tables_plus_one = TimeTable.objects.all().count()
|
|
self.assertEqual(
|
|
tables + 1, tables_plus_one
|
|
)
|
|
|