import os from lettuce import step, world from nose.tools import assert_true, assert_equals from django.conf import settings from steps import click_on @step(u'create a new poll "([^"]*)"') def create_a_new_poll_poll_name(step, poll_name): b = world.browser click_on(b, "polls") click_on(b, "new_poll") b.fill("name", poll_name) click_on(b, "save") assert_true(b.is_text_present("guardada correctamente")) @step(u'add a group "([^"]*)"') def add_a_group_name(step, group_name): b = world.browser click_on(b, "group_add") b.fill("groups.0.name", group_name) @step(u'add a question "([^"]*)" as "([^"]*)"') def add_a_question_as_question_type(step, question, question_type): b = world.browser button = b.find_by_xpath('//*[@id="WGroupContainer"]/div/legend/button[2]') button.click() b.fill("groups.0.fields.0.name", question) b.select("groups.0.fields.0.widget_type", question_type) @step(u'And add a option "([^"]*)" with weight "([^"]*)" and image "([^"]*)"') def add_option_with_weight_and_image(step, option, weight, image): b = world.browser add_option = b.find_by_xpath( '//*[@id="WGroupContainer"]/div/fieldset/div/div[3]/div[1]/div/button') add_option.click() p = '//*[@id="WGroupContainer"]/div/fieldset/div/div[4]/div/div/label/span' opt_id = b.find_by_xpath(p).text b.fill('groups.0.fields.0.options.{id}.text'.format(id=opt_id), option) b.fill('groups.0.fields.0.options.{id}.weight'.format(id=opt_id), weight) fixtures_path = os.path.join(settings.PROJECT_ROOT, 'features/fixtures') img_path = os.path.join(fixtures_path, image) input_ = 'groups.0.fields.0.options.{id}.img'.format(id=opt_id) script = """ a = $('input[name="{name}"]'); span = a.parent('span');$(span).removeClass('btn-file'); """.format(name=input_) b.execute_script(script) b.attach_file(input_, img_path) @step(u'And an image is in option "([^"]*)"') def image_is_in_option(step, option): b = world.browser p = '//*[@id="WGroupContainer"]/div/fieldset/div/div[5]/div/div/label/span' opt_id = b.find_by_xpath(p).text imgs = b.find_by_tag('img') if b.find_by_tag('img') else [] filtered_imgs = [] for img in imgs: if img['img_src'] and (opt_id in img['img_src']): filtered_imgs.append(img) assert_equals(1, len(filtered_imgs))