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'assistance 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 une exception AssertionError s'il y a des violations. Le message d'erreur inclut un rapport de 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 une exception 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 identifiants de règles à vérifier pour le statut inapplicable.
Lève une exception AssertionError si l'une des règles spécifiées n'est pas dans les résultats inapplicables.
Exemple
L'exemple suivant peut être exécuté directement avec Python, en supposant que axe-devtools-api, axe-devtools-selenium, et axe-devtools-unittest sont 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()