Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/webapp/features/poll_result_details.py
blob: 6697a88b3c3852fdca8efb607c4d88720b3156bd (plain)
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'])