Caveman jest pakiet Pythona, który analizuje i zatwierdza HTML5 manifesty cache. Aplikacje HTML5 są notorycznie wybredna swoich manifestach pamięci podręcznej, a trudno jest sprawdzić, czy wszystkie elementy są tak jak powinny.
Caveman zapewnia jeden skrypt wiersza polecenia, check_manifest, który ściąga stronę HTML, zadrapania ją dla wykorzystywanych zasobów, analizuje jego pamięci podręcznej manifestu, a zatwierdza środki przeciwko manifeście:
& Nbsp; check_manifest URL
Problemy z manifestu są zapisywane na standardowe wyjście. Więcej szczegółów na temat procesu jest wysyłany, jeżeli chcesz ustawić poziom dziennika do innego ciężkości z --level = przełącznik poziomu, gdzie na poziomie Debug, INFO, OSTRZEŻENIE lub błędów.
Zastosowanie Programowa
Caveman zostało zaprojektowane do użytku z własnego kodu, na przykład, jako część większego procesu zatwierdzania, lub w ramach testów jednostkowych w aplikacji internetowej.
Praca Caveman jest wykonywane przez klasy ManifestChecker. Instancję go z dwoma pomocnikami: funkcja get_url, że dane z adresów pobiera i obiekt rejestratora, który dostaje zalogowany wiadomości:
od jaskiniowców importu ManifestChecker
get_url def (URL): ...
Rejestrator = ...
man_checker = ManifestChecker (get_url = get_url, rejestrator = rejestrator)
Następnie wywołać jego metodę check_manifest z adresem URL strony HTML:
man_checker.check_manifest (url)
Nie jest zwracana wartość: wyjście został zapisany do obiektu rejestratora. Zobacz docstrings w kodzie źródłowym szczegółów.
Django testy jednostkowe
Jako przykład programowej użytku, tutaj jest jeden sposób na wykorzystanie Caveman w testowej pakietu Django:
od jaskiniowców importu ManifestChecker
Klasa TestManifest (django.test.TestCase):
& Nbsp; def setup (self):
& Nbsp; self.checker = ManifestChecker (get_url = self.get_url, rejestrator = self)
& Nbsp; self.caveman_log = []
& Nbsp; def get_url (self, url):
& Nbsp; "" ". Funkcja get_url dla` caveman.ManifestChecker` "" "
& Nbsp; # pomocą klienta testowego Django pobrać adresu URL.
& Nbsp; odpowiedź = self.client.get (url)
& Nbsp; return response.status_code, response.content, odpowiedzi
& Nbsp; # Record poważne Caveman wiadomości w `self.caveman_log`.
& Nbsp; def debug (self, MSG): karnet
& Nbsp; def informacji (self, MSG): karnet
& Nbsp; def ostrzeżenie (self, MSG): self.caveman_log.append (MSG)
& Nbsp; def błąd (self, MSG): self.caveman_log.append (MSG)
& Nbsp; def test_my_manifest (self):
& Nbsp; "" "Jaskiniowiec nie daje ostrzeżenia lub błędy w pamięci podręcznej oczywistego." ""
& Nbsp; self.checker.check_manifest ("/")
& Nbsp; self.assertEqual ([], self.caveman_log)
Więcej informacji
Caveman można pobrać z PyPI: http://pypi.python.org/pypi/caveman
Specyfikacja HTML5 cache jest w oczywisty http://www.w3.org/TR/html5/offline.html
Docs w http://nedbatchelder.com/code/caveman.
. Repozytorium kodu i tracker problemem są bitbucket.org
Wymagania :
- Python
Ograniczenia :
- Caveman ciągnie tylko strona HTML można określić. Mimo, że sprawdza linki do innych stron HTML przeciwko manifeście, nie ciągnąć te linkowane strony i sprawdzić swoje zasoby.
- Niektóre przepisy od specyfikacji HTML5 nie są sprawdzane.
Komentarze nie znaleziono