1
2
3
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
|
# -*- coding: utf-8 -*-
import json
import os
import tempfile
import shutil
from lettuce import step, world, after
from lettuce.django import django_url
from nose.tools import assert_equals
from django.conf import settings
from pollster.models import Pollster
from polls.models import Poll
def create_poll_result_file(poll_result_data, poll_result_name):
tmp_file = tempfile.NamedTemporaryFile(suffix='.poll_result', delete=False)
try:
tmp_file.write(
json.dumps(poll_result_data, sort_keys=True, indent=4,
separators=(',', ': '))
)
tmp_dir = os.path.dirname(tmp_file.name)
poll_result_path = os.path.join(tmp_dir, poll_result_name)
os.rename(tmp_file.name, poll_result_path)
finally:
tmp_file.close()
return poll_result_path
def get_pollster_by_username(encuestador_name):
return filter(lambda e: e.username == encuestador_name, Pollster.all())[0]
@step(u'Then I should see the poll_result details:')
def then_i_should_see_the_poll_result_details(step):
b = world.browser
for poll_result_details in step.hashes:
for detail_desc in poll_result_details.keys():
assert b.is_text_present(detail_desc), \
detail_desc.encode('utf-8') + " is not present"
value = poll_result_details[detail_desc]
assert b.is_text_present(value), \
value.encode('utf-8') + " is not present"
@after.each_feature
def remove_poll_results_files(feature):
if feature.name == 'Poll result details':
MEDIA_RESULTS = settings.RESULT_BCK_ROOT
result_dir = os.path.join(MEDIA_RESULTS, world.poll_id.__str__())
shutil.rmtree(result_dir)
@step(u'Then I should see link to "([^"]*)"')
def then_i_should_see_link_to_poll_result_name(step, poll_result_name):
browser = world.browser
poll_id = str(world.poll_id)
poll = Poll.get(poll_id)
poll_result_file = poll.get_result_files()[0]
poll_result_url = poll_result_file.get_absolute_url()
element = browser.find_by_name("poll_result_file").first
assert_equals(django_url(poll_result_url), element['href'])
|