[tests] setup selenium live testcase

django-5.0
Thomas Leichtfuß 2020-09-05 13:51:45 +02:00
parent 6c04bcf6d9
commit c7f7b22368
2 changed files with 39 additions and 0 deletions

1
.gitignore vendored
View File

@ -2,6 +2,7 @@ __pycache__/
.python-version
.coverage
.coveralls.yml
geckodriver.log
db.sqlite3*
/django_more_admin_filters.egg-info/
/build/

View File

@ -0,0 +1,38 @@
from django.contrib.auth.models import User
from django.urls import reverse
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium.webdriver.firefox.webdriver import WebDriver
from ..management.commands.createtestdata import create_test_data
class LiveFilterTest(StaticLiveServerTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.selenium = WebDriver()
cls.selenium.implicitly_wait(10)
@classmethod
def tearDownClass(cls):
cls.selenium.quit()
super().tearDownClass()
def setUp(self):
create_test_data()
self.admin = User.objects.get(username='admin')
self.client.force_login(self.admin)
self.url_path = reverse('admin:testapp_modela_changelist')
# login to selenium - using a cookie from the django test client
admin = User.objects.get(username='admin')
self.client.force_login(admin)
cookie = self.client.cookies['sessionid']
self.selenium.get(self.live_server_url + '/admin/') #selenium will set cookie domain based on current page domain
self.selenium.add_cookie({'name': 'sessionid', 'value': cookie.value, 'secure': False, 'path': '/'})
self.selenium.refresh() #need to update page for logged in user
def test_01_filter(self):
self.selenium.get(self.live_server_url + self.url_path)