django-select2/tests/conftest.py

57 lines
1.3 KiB
Python
Raw Normal View History

2015-03-03 09:01:51 +00:00
# -*- coding:utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals
import os
2015-12-02 18:59:36 +00:00
import random
import string
2015-03-03 09:01:51 +00:00
import pytest
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
browsers = {
2015-08-06 09:58:27 +00:00
# 'firefox': webdriver.Firefox,
# 'chrome': webdriver.Chrome,
'phantomjs': webdriver.PhantomJS,
2015-03-03 09:01:51 +00:00
}
2015-12-02 18:59:36 +00:00
def random_string(n):
return ''.join(
random.choice(string.ascii_uppercase + string.digits)
for _ in range(n)
)
2015-03-03 09:01:51 +00:00
@pytest.fixture(scope='session',
params=browsers.keys())
def driver(request):
if 'DISPLAY' not in os.environ:
pytest.skip('Test requires display server (export DISPLAY)')
try:
b = browsers[request.param]()
except WebDriverException as e:
pytest.skip(e)
else:
b.set_window_size(1200, 800)
request.addfinalizer(lambda *args: b.quit())
return b
2015-08-06 09:58:27 +00:00
@pytest.fixture
def genres(db):
2015-12-02 18:59:36 +00:00
from .testapp.models import Genre
return Genre.objects.bulk_create(
[Genre(pk=pk, title=random_string(50)) for pk in range(100)]
)
2015-08-06 09:58:27 +00:00
@pytest.fixture
def artists(db):
2015-12-02 18:59:36 +00:00
from .testapp.models import Artist
return Artist.objects.bulk_create(
[Artist(pk=pk, title=random_string(50)) for pk in range(100)]
)