Newer
Older
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from django.test import TestCase, Client
from legislature.models import MemopolRepresentative
from positions.models import Position
class PositionTest(TestCase):
def setUp(self):
self.client = Client()
self.tags = [u'foo', u'bar']
self.mep = MemopolRepresentative.objects.create(
full_name='%sfull' % self.id(), slug='slug')
self.fixture = {
'tags': ','.join(self.tags),
'datetime': '2015-12-11',
'text': '%stext' % self.id(),
'link': 'http://example.com/%slink' % self.id(),
'representative': self.mep.pk,
}
def test_create_position(self):
response = self.client.post('/positions/create', self.fixture)
expected = 'http://testserver/legislature/slug'
assert response['Location'] == expected
result = Position.objects.get(text='%stext' % self.id())
assert list(result.tags.values_list('name', flat=True)) == self.tags
assert result.datetime == datetime.date(2015, 12, 11)
assert result.link == self.fixture['link']
assert result.representative.representative_ptr_id == self.mep.pk
assert result.published is False
def test_position_publishing(self):
self.client.post('/positions/create', self.fixture)
position = Position.objects.get(text='%stext' % self.id())
get_response = self.client.get(position.get_absolute_url())
assert get_response.status_code == 404
position.published = True
position.save()
get_response = self.client.get(position.get_absolute_url())
assert get_response.status_code == 200
def test_create_position_without_field(self):
for key in self.fixture.keys():
fixture = copy.copy(self.fixture)
fixture.pop(key)
response = self.client.post('/positions/create', fixture)
assert response.context['form'].is_valid() is False
def test_position_detail(self):
fixture = copy.copy(self.fixture)
fixture['representative'] = self.mep
fixture.pop('tags')
position = Position.objects.create(published=True, **fixture)
position.tags.add('%stag' % self.id())
response = self.client.get(position.get_absolute_url())
assert 'Dec. 11, 2015' in response.content
assert '%stag' % self.id() in response.content
assert fixture['link'] in response.content
assert fixture['text'] in response.content
assert self.mep.full_name in response.content