add basic selenium tests

pull/22/head
JensDiemer 2020-11-14 20:03:40 +01:00
rodzic fb10e1fcf6
commit 3e65894f5f
3 zmienionych plików z 47 dodań i 1 usunięć

17
poetry.lock wygenerowano
Wyświetl plik

@ -1034,6 +1034,17 @@ python-versions = ">=3.5"
cryptography = ">=2.0" cryptography = ">=2.0"
jeepney = ">=0.4.2" jeepney = ">=0.4.2"
[[package]]
name = "selenium"
version = "3.141.0"
description = "Python bindings for Selenium"
category = "dev"
optional = false
python-versions = "*"
[package.dependencies]
urllib3 = "*"
[[package]] [[package]]
name = "six" name = "six"
version = "1.15.0" version = "1.15.0"
@ -1255,7 +1266,7 @@ postgres = ["psycopg2-binary"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = ">=3.7,<4.0.0" python-versions = ">=3.7,<4.0.0"
content-hash = "639d02b48a5969184e2994899523031192e5a2dc35e644c1760086c5f74893a5" content-hash = "255146b2cf501cee5d0301c28f1b0ce6b03ecf3ff94d28ad46318c944aad7bc9"
[metadata.files] [metadata.files]
appdirs = [ appdirs = [
@ -1792,6 +1803,10 @@ secretstorage = [
{file = "SecretStorage-3.2.0-py3-none-any.whl", hash = "sha256:ed5279d788af258e4676fa26b6efb6d335a31f1f9f529b6f1e200f388fac33e1"}, {file = "SecretStorage-3.2.0-py3-none-any.whl", hash = "sha256:ed5279d788af258e4676fa26b6efb6d335a31f1f9f529b6f1e200f388fac33e1"},
{file = "SecretStorage-3.2.0.tar.gz", hash = "sha256:46305c3847ee3f7252b284e0eee5590fa6341c891104a2fd2313f8798c615a82"}, {file = "SecretStorage-3.2.0.tar.gz", hash = "sha256:46305c3847ee3f7252b284e0eee5590fa6341c891104a2fd2313f8798c615a82"},
] ]
selenium = [
{file = "selenium-3.141.0-py2.py3-none-any.whl", hash = "sha256:2d7131d7bc5a5b99a2d9b04aaf2612c411b03b8ca1b1ee8d3de5845a9be2cb3c"},
{file = "selenium-3.141.0.tar.gz", hash = "sha256:deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d"},
]
six = [ six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},

Wyświetl plik

@ -72,6 +72,7 @@ pytest-randomly = "*"
pytest-cov = "*" pytest-cov = "*"
pytest-django = "*" pytest-django = "*"
pytest-parallel = "*" pytest-parallel = "*"
selenium = "*"
coveralls = "*" coveralls = "*"
isort = "*" isort = "*"
flake8 = "*" flake8 = "*"

Wyświetl plik

@ -1,8 +1,18 @@
import os
import unittest
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.test import TestCase from django.test import TestCase
from django_processinfo.models import ProcessInfo, SiteStatistics from django_processinfo.models import ProcessInfo, SiteStatistics
from django_tools.selenium.chromedriver import chromium_available
from django_tools.selenium.django import (
SeleniumChromiumStaticLiveServerTestCase,
SeleniumFirefoxStaticLiveServerTestCase,
)
from django_tools.selenium.geckodriver import firefox_available
from model_bakery import baker from model_bakery import baker
from inventory import __version__
from inventory.permissions import get_or_create_normal_user_group from inventory.permissions import get_or_create_normal_user_group
@ -73,3 +83,23 @@ class ProcessinfoAdminTestCase(TestCase):
assert SiteStatistics.objects.count() == 1 assert SiteStatistics.objects.count() == 1
assert ProcessInfo.objects.count() == 1 assert ProcessInfo.objects.count() == 1
@unittest.skipIf('CI' in os.environ, 'Skip, selenium tests does not work on CI run!')
@unittest.skipUnless(chromium_available(), "Skip because Chromium is not available!")
class AdminChromiumTests(SeleniumChromiumStaticLiveServerTestCase):
def test_admin_login_page(self):
self.driver.get(self.live_server_url + "/admin/login/")
self.assert_equal_page_title(f"Log in | PyInventory v{__version__}")
self.assert_in_page_source('<form action="/admin/login/" method="post" id="login-form">')
self.assert_no_javascript_alert()
@unittest.skipIf('CI' in os.environ, 'Skip, selenium tests does not work on CI run!')
@unittest.skipUnless(firefox_available(), "Skip because Firefox is not available!")
class AdminFirefoxTests(SeleniumFirefoxStaticLiveServerTestCase):
def test_admin_login_page(self):
self.driver.get(self.live_server_url + "/admin/login/")
self.assert_equal_page_title(f"Log in | PyInventory v{__version__}")
self.assert_in_page_source('<form action="/admin/login/" method="post" id="login-form">')
self.assert_no_javascript_alert()