Caveman est un paquet de Python qui analyse et valide HTML5 manifestes de cache. Applications HTML5 sont notoirement pointilleux sur leurs manifestes de cache, et il est difficile de vérifier que tous les composants sont comme elles devraient être.
Caveman fournit un script de ligne de commande, check_manifest, qui tire une page HTML, il éraflures pour les ressources utilisées, parse son manifeste de cache, et valide les ressources contre le manifeste:
& Nbsp; check_manifest URL
Problèmes avec le manifeste sont écrits sur la sortie standard. Plus de détails sur le processus est sortie si vous définissez le niveau de journal à un autre la gravité avec le commutateur LEVEL = --level, où le niveau est DEBUG, INFO, AVERTISSEMENT ou erreur.
utilisation programmatique
Caveman a été conçu pour être utilisable à partir de votre propre code, par exemple, dans le cadre d'un processus de validation plus large, ou dans le cadre de tests unitaires dans votre application web.
Le travail de Caveman est fait par la classe ManifestChecker. Vous instancier avec deux aides: une fonction de get_url qui récupère les données à partir d'URL, et un objet logger qui obtient messages enregistrés:
de ManifestChecker d'importation caveman
def get_url (url): ...
logger = ...
man_checker = ManifestChecker (get_url = get_url, enregistreur = logger)
Puis appeler sa méthode check_manifest avec l'URL de la page HTML:
man_checker.check_manifest (URL)
Aucune valeur est renvoyée: la sortie a été connecté à l'objet de l'enregistreur. Voir les docstrings dans le code source pour plus de détails.
Tests unitaires Django
Comme un exemple d'utilisation programmatique, voici une façon d'utiliser Caveman dans une suite de test Django:
de ManifestChecker d'importation caveman
classe TestManifest (django.test.TestCase):
& Nbsp; def setUp (auto):
& Nbsp; self.checker = ManifestChecker (get_url = self.get_url, enregistreur = auto)
& Nbsp; self.caveman_log = []
& Nbsp; def get_url (auto, URL):
& Nbsp; "" ". Une fonction de get_url pour` caveman.ManifestChecker` "" "
& Nbsp; # Utilisez le client de test Django pour récupérer l'URL.
& Nbsp; la réponse = self.client.get (URL)
& Nbsp; retour response.status_code, response.content, réponse
& Nbsp; # Enregistrer les graves Les messages Caveman dans `self.caveman_log`.
& Nbsp; def debug (auto, msg): passe
& Nbsp; def info (auto, msg): passe
& Nbsp; def avertissement (auto, msg): self.caveman_log.append (msg)
& Nbsp; def erreur (auto, msg): self.caveman_log.append (msg)
& Nbsp; def test_my_manifest (auto):
& Nbsp; "" "Caveman produit aucun avertissements ou d'erreurs pour le manifeste de cache." ""
& Nbsp; self.checker.check_manifest ("/")
& Nbsp; self.assertEqual ([], self.caveman_log)
Plus d'informations
Caveman peut être téléchargé depuis PyPI: http://pypi.python.org/pypi/caveman
Le cache HTML5 spec manifeste est à http://www.w3.org/TR/html5/offline.html
Docs à http://nedbatchelder.com/code/caveman.
. référentiel de code et de suivi de problèmes sont à bitbucket.org
Exigences :
- Python
Limitations :
- Caveman tire la page HTML que vous spécifiez. Bien qu'il valide liens vers d'autres pages HTML contre le manifeste, il ne tire pas ceux liés à des pages et vérifier leurs ressources.
- Certaines règles de la spécification HTML5 ne sont pas validées.
Commentaires non trouvées