2015-03-30 15:00:37 +00:00
|
|
|
# -*- coding:utf-8 -*-
|
|
|
|
|
from __future__ import print_function, unicode_literals
|
|
|
|
|
|
2015-04-06 18:29:13 +00:00
|
|
|
import pytest
|
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
|
from selenium.common.exceptions import NoSuchElementException
|
|
|
|
|
|
2015-03-30 15:00:37 +00:00
|
|
|
|
|
|
|
|
class TestWidgets(object):
|
|
|
|
|
url = ""
|
|
|
|
|
|
|
|
|
|
def test_is_hidden_multiple(self):
|
|
|
|
|
from django_select2.widgets import HeavySelect2MultipleWidget
|
|
|
|
|
new_widget = HeavySelect2MultipleWidget(data_url="/")
|
|
|
|
|
assert new_widget.is_hidden is False
|
|
|
|
|
|
|
|
|
|
def test_is_hidden(self):
|
|
|
|
|
from django_select2.widgets import HeavySelect2Widget
|
|
|
|
|
new_widget = HeavySelect2Widget(data_url="/")
|
|
|
|
|
assert new_widget.is_hidden is False
|
2015-04-06 18:29:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestSelect2Widget(object):
|
|
|
|
|
url = reverse('select2_widget')
|
|
|
|
|
|
|
|
|
|
def test_selecting(self, db, client, live_server, driver):
|
|
|
|
|
driver.get(live_server + self.url)
|
2015-04-08 12:47:34 +00:00
|
|
|
dropdown = driver.find_element_by_css_selector('.select2-results')
|
|
|
|
|
assert dropdown.is_displayed() is False
|
|
|
|
|
elem = driver.find_element_by_css_selector('.select2-choice')
|
|
|
|
|
elem.click()
|
|
|
|
|
assert dropdown.is_displayed() is True
|
2015-04-06 18:29:13 +00:00
|
|
|
with pytest.raises(NoSuchElementException):
|
|
|
|
|
error = driver.find_element_by_xpath('//body[@JSError]')
|
|
|
|
|
pytest.fail(error.get_attribute('JSError'))
|
2015-04-20 19:31:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestHeavySelect2Widget(object):
|
|
|
|
|
url = reverse('heavy_select2_widget')
|
|
|
|
|
|
|
|
|
|
def test_heavy_select(self, db, client, live_server, driver):
|
|
|
|
|
driver.get(live_server + self.url)
|
|
|
|
|
dropdown = driver.find_element_by_css_selector('.select2-results')
|
|
|
|
|
assert dropdown.is_displayed() is False
|
|
|
|
|
elem = driver.find_element_by_css_selector('.select2-choice')
|
|
|
|
|
elem.click()
|
|
|
|
|
assert dropdown.is_displayed() is True
|
|
|
|
|
with pytest.raises(NoSuchElementException):
|
|
|
|
|
error = driver.find_element_by_xpath('//body[@JSError]')
|
|
|
|
|
pytest.fail(error.get_attribute('JSError'))
|
2015-05-27 14:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestHeavySelect2MultipleWidget(object):
|
|
|
|
|
url = reverse('heavy_select2_multiple_widget')
|
|
|
|
|
|
|
|
|
|
def test_heavy_select_multiple(self, db, client, live_server, driver):
|
|
|
|
|
driver.get(live_server + self.url)
|
|
|
|
|
dropdown = driver.find_element_by_css_selector('.select2-results')
|
|
|
|
|
assert dropdown.is_displayed() is False
|
|
|
|
|
elem = driver.find_element_by_css_selector('.select2-choices')
|
|
|
|
|
elem.click()
|
|
|
|
|
assert dropdown.is_displayed() is True
|
|
|
|
|
with pytest.raises(NoSuchElementException):
|
|
|
|
|
error = driver.find_element_by_xpath('//body[@JSError]')
|
|
|
|
|
pytest.fail(error.get_attribute('JSError'))
|