axe-devtools-unittest API-referentie
API-referentie voor het axe-devtools-unittest pakket dat toegankelijkheidsasserties biedt voor unittest
Dit pakket biedt helperasserties die uitbreiden unittest om te integreren met Axe DevTools.
axe_devtools_unittest.AxeAssertions
Een mixin-klasse die toegankelijkheidsasserties toevoegt aan unittest.TestCase. De testklasse moet zowel uitbreiden als unittest.TestCase en AxeAssertions.
class MyTests(unittest.TestCase, AxeAssertions):
...assertIsAxeClean(results)
Bevestig dat axe-core geen overtredingen heeft gevonden.
results: Het door Axe.analyze()geretourneerde resultatenobject.
Geeft een foutmelding AssertionError als er overtredingen zijn. Het foutbericht bevat een overtredingsrapport.
assertNoIncomplete(results)
Bevestig dat alle door axe-core uitgevoerde controles zijn voltooid.
Niet-voltooide controles zijn die welke noch definitief geslaagd noch definitief mislukt zijn en handmatige controle vereisen.
results: Het door Axe.analyze()geretourneerde resultatenobject.
Geeft een foutmelding AssertionError als er onvoltooide controles zijn.
assertInapplicable(results, *rules)
Bevestig dat de opgegeven regels niet-toepasbare resultaten hebben opgeleverd.
results: Het door Axe.analyze()geretourneerde resultatenobject.
rules: Een of meer regel-ID's om te controleren op niet-toepasbare status.
Geeft een foutmelding AssertionError als een van de opgegeven regels niet in de niet-toepasbare resultaten zit.
Voorbeeld
Het volgende voorbeeld kan direct worden uitgevoerd met Python, mits axe-devtools-api, axe-devtools-selenium, en axe-devtools-unittest zijn geïnstalleerd.
import unittest
from os import path
from axe_devtools_api import Axe
from axe_devtools_selenium import AxeDriver
from axe_devtools_unittest import AxeAssertions
from selenium import webdriver
class TestAxe(unittest.TestCase, AxeAssertions):
def setUp(self):
self.page = webdriver.Chrome()
self.page.get("http://localhost:8000/example-page.html")
self.axe = Axe(AxeDriver(self.page))
def test_run_axe(self):
res = self.axe.analyze()
assert res.is_axe_clean(), res.violations_report()
def test_with_rules(self):
res = self.axe \
.with_rules("document-title", "label") \
.with_rules("region") \
.analyze()
self.assertNoIncomplete(res)
self.assertIsAxeClean(res)
def test_including_within_frame(self):
res = self.axe \
.including("#my-frame", "body") \
.analyze()
self.assertNoIncomplete(res)
self.assertIsAxeClean(res)
if __name__ == '__main__':
unittest.main()