Référence de l'API axe-devtools-unittest
Référence de l'API pour le package axe-devtools-unittest fournissant des assertions d'accessibilité pour unittest
Ce package fournit des assertions d'aide qui étendent unittest pour s'intégrer avec Axe DevTools.
axe_devtools_unittest.AxeAssertions
Une classe mixin qui ajoute des assertions d'accessibilité à unittest.TestCase. La classe de test doit étendre à la fois unittest.TestCase et AxeAssertions.
class MyTests(unittest.TestCase, AxeAssertions):
...assertIsAxeClean(results)
Vérifiez qu'aucune violation n'a été trouvée par axe-core.
results : L'objet de résultats retourné par Axe.analyze().
Lève AssertionError s'il y a des violations. Le message d'erreur inclut un rapport des violations.
assertNoIncomplete(results)
Assurez-vous qu'axe-core a terminé toutes les vérifications qu'il a tentées.
Les vérifications incomplètes sont celles qui n'ont ni réussi ni échoué de manière définitive et nécessitent un examen manuel.
results : L'objet de résultats retourné par Axe.analyze().
Lève AssertionError si des vérifications sont incomplètes.
assertInapplicable(results, *rules)
Assurez-vous que les règles spécifiées ont produit des résultats inapplicables.
results : L'objet de résultats retourné par Axe.analyze().
rules : Un ou plusieurs ID de règles à vérifier pour le statut non applicable.
Lève AssertionError si l'une des règles spécifiées ne figure pas dans les résultats non applicables.
Exemple
L'exemple suivant peut être exécuté directement avec Python, à condition que axe-devtools-api, axe-devtools-selenium et axe-devtools-unittest soient installés.
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()