Referencia de la API de axe-devtools-unittest
Referencia de la API para el paquete axe-devtools-unittest que proporciona aserciones de accesibilidad para unittest
Este paquete proporciona aserciones de ayuda que extienden unittest para integrar con Axe DevTools.
axe_devtools_unittest.AxeAssertions
Una clase mixin que agrega aserciones de accesibilidad a unittest.TestCase. La clase de prueba debe extender tanto unittest.TestCase como AxeAssertions.
class MyTests(unittest.TestCase, AxeAssertions):
...assertIsAxeClean(results)
Asegúrese de que axe-core no encontró violaciones.
results: El objeto de resultados devuelto por Axe.analyze().
Genera AssertionError si hay violaciones. El mensaje de error incluye un informe de violaciones.
assertNoIncomplete(results)
Asegúrese de que axe-core completó todas las comprobaciones que intentó.
Las comprobaciones incompletas son aquellas que ni pasaron ni fallaron definitivamente y requieren revisión manual.
results: El objeto de resultados devuelto por Axe.analyze().
Genera AssertionError si alguna comprobación está incompleta.
assertInapplicable(results, *rules)
Asegúrese de que las reglas especificadas produjeron resultados no aplicables.
results: El objeto de resultados devuelto por Axe.analyze().
rules: Uno o más IDs de reglas para verificar el estado de no aplicable.
Genera AssertionError si alguna de las reglas especificadas no está en los resultados no aplicables.
Ejemplo
El siguiente ejemplo se puede ejecutar directamente con Python, suponiendo que axe-devtools-api, axe-devtools-selenium, y axe-devtools-unittest están instalados.
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()