Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/webapp/features/poll_result_details.py
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/webapp/features/poll_result_details.py')
-rw-r--r--webapp/webapp/features/poll_result_details.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/webapp/webapp/features/poll_result_details.py b/webapp/webapp/features/poll_result_details.py
new file mode 100644
index 0000000..a63c246
--- /dev/null
+++ b/webapp/webapp/features/poll_result_details.py
@@ -0,0 +1,74 @@
+# -*- 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'When I visit the "([^"]*)" page for "([^"]*)" poll')
+def visit_page_for_poll(step, page_name, poll_name):
+ page_list = {'Resultados': 'results'}
+ page = page_list[page_name]
+ poll_id = world.poll_id.__str__()
+ b = world.browser
+ url = '/manager/polls/{poll_id}/{page}/'.format(poll_id=poll_id, page=page)
+ b.visit(django_url(url))
+
+
+@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'])