穴居人:HTML5缓存清单验证
项目描述
穴居人是一个解析和验证HTML5缓存清单的包。HTML5应用程序对它们的缓存清单非常挑剔,检查所有组件是否如预期那样困难。
穴居人提供了一个命令行脚本,名为check_manifest,它会拉取HTML页面,抓取使用过的资源,解析其缓存清单,并验证资源与清单的一致性。
$ check_manifest URL
清单中的问题将写入标准输出。如果您使用–level=LEVEL开关将日志级别设置为不同的严重性,则会输出更多关于该过程的信息,其中LEVEL是DEBUG、INFO、WARNING或ERROR。
程序性使用
穴居人已被设计成可以从您自己的代码中使用,例如,作为更大验证过程的一部分,或作为Web应用程序单元测试的一部分。
穴居人的工作由ManifestChecker类完成。您使用两个辅助工具实例化它:一个get_url函数,用于从URL获取数据,以及一个logger对象,用于获取日志消息。
from caveman import ManifestChecker def get_url(url): ... logger = ... man_checker = ManifestChecker(get_url=get_url, logger=logger)
然后使用HTML页面的URL调用其check_manifest方法。
man_checker.check_manifest(url)
没有返回值:输出已记录到logger对象。有关详细信息,请参阅源代码中的文档字符串。
Django单元测试
作为程序性使用的示例,以下是在Django测试套件中使用Caveman的一种方法
from caveman import ManifestChecker class TestManifest(django.test.TestCase): def setUp(self): self.checker = ManifestChecker(get_url=self.get_url, logger=self) self.caveman_log = [] def get_url(self, url): """A get_url function for `caveman.ManifestChecker`.""" # Use the Django test client to fetch the URL. response = self.client.get(url) return response.status_code, response.content, response # Record the serious Caveman messages in `self.caveman_log`. def debug(self, msg): pass def info(self, msg): pass def warning(self, msg): self.caveman_log.append(msg) def error(self, msg): self.caveman_log.append(msg) def test_my_manifest(self): """Caveman produces no warnings or errors for the cache manifest.""" self.checker.check_manifest("/") self.assertEqual([], self.caveman_log)
限制
穴居人仅拉取您指定的HTML页面。尽管它验证了对其他HTML页面的链接与清单的一致性,但它不会拉取这些链接到的页面并验证其资源。
HTML5规范中的某些规则未进行验证。
更多信息
可以从PyPI下载穴居人:http://pypi.python.org/pypi/caveman
HTML5 缓存规范位于 http://www.w3.org/TR/html5/offline.html
文档位于 http://nedbatchelder.com/code/caveman。
代码仓库和问题跟踪位于 bitbucket.org。
项目详情
caveman-1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75906cedc2a8932111713b9ac22cf6a303b2ad33e8a9e0c1fabfec0374452c9f |
|
MD5 | 605e7a98e8797e3f216d943dfd883f5f |
|
BLAKE2b-256 | 3705d0cb167c868a98aa79d9a5e0af661e72351f3dde26c9793c27cdcfb6149f |