Caveman egy Python csomag, ami értelmezi és érvényesíti HTML5 cache manifesztálódik. HTML5 alkalmazások hírhedten kényesek a cache hajórakomány nehéz ellenőrizni, hogy az összes komponens, mint ahogy kellene.
Caveman nyújt egy parancssori script, check_manifest, ami húzza egy HTML oldal, karcolások is használt forrásokat, értelmezi a cache nyilvánvaló, és igazolja a források ellen nyilvánvaló:
& Nbsp; check_manifest URL
Problémák a nyilvánvaló vannak írva a standard kimenetre. További részletek a folyamat kimeneti ha állítani a naplózási szintet, hogy a különböző súlyosságú a --level = szintkapcsoló, ahol szint Debug információk, figyelmeztetési vagy hiba.
A programozott használata strong>
Caveman úgy tervezték, hogy használható legyen a saját kódját, például részeként egy nagyobb érvényesítési folyamat részeként vagy egység vizsgálatok a webes alkalmazás.
Caveman munkáját végzi ManifestChecker osztályban. Példányosítani meg két segítő: a get_url funkció, amely letölti adatok URL-ek és a logger objektumot kap bejelentkezve üzenetek:
barlanglakó import ManifestChecker
def get_url (url): ...
logger = ...
man_checker = ManifestChecker (get_url = get_url, logger = logger)
Majd hívja a check_manifest módszer az URL a HTML-oldal:
man_checker.check_manifest (url)
Nincs visszatérítési érték: a kimeneti már bejelentkezett a naplózó objektumot. Lásd a docstrings a forráskódban.
Django egység vizsgálatok
Példaként programadó használatra, itt van egy módja, hogy használja Caveman egy Django tesztsorozat:
barlanglakó import ManifestChecker
osztály TestManifest (django.test.TestCase):
& Nbsp; def setup (self):
& Nbsp; self.checker = ManifestChecker (get_url = self.get_url, logger = self)
& Nbsp; self.caveman_log = []
& Nbsp; def get_url (self, url):
& Nbsp; "" "A get_url funkció` caveman.ManifestChecker`. "" "
& Nbsp; # A Django teszt ügyfél letölteni az URL.
& Nbsp; reakció = self.client.get (url)
& Nbsp; visszatérési response.status_code, response.content, válaszként
& Nbsp; # Record súlyos Caveman üzenetek `self.caveman_log`.
& Nbsp; def debug (self, msg): passz
& Nbsp; def info (self, msg): passz
& Nbsp; def figyelmeztetés (self, msg): self.caveman_log.append (msg)
& Nbsp; def hiba (self, msg): self.caveman_log.append (msg)
& Nbsp; def test_my_manifest (self):
& Nbsp; "" "Caveman nem termel figyelmeztetéseket vagy hibákat a cache nyilvánvaló." ""
& Nbsp; self.checker.check_manifest ("/")
& Nbsp; self.assertEqual ([], self.caveman_log)
További információ
Caveman lehet letölteni PyPI: http://pypi.python.org/pypi/caveman
A HTML5 cache nyilvánvaló spec van http://www.w3.org/TR/html5/offline.html
Docs http://nedbatchelder.com/code/caveman.
Kódtárból és kérdés tracker vannak bitbucket.org.
követelmények :
- Python
Korlátozások :
- Caveman csak húzza a HTML oldalon meg kell adni. Bár érvényesíti linkek más HTML oldalak ellen nyilvánvaló, hogy nem húzza azokat a hivatkozott lapok és ellenőrzi azok források.
- Bizonyos szabályok a HTML5 spec nem érvényesített.
Hozzászólás nem található