d8cabdfdb5
* fix: CI yml name * add: mypy configuraion * add: type annotation to waybackpy modules * add: type annotation to test modules * fix: mypy command * add: types-requests to dev deps * fix: disable max-line-length * fix: move pytest.ini into setup.cfg * add: urllib3 to deps * fix: Retry (ref: https://github.com/python/typeshed/issues/6893) * fix: f-string * fix: shorten long lines * add: staticmethod decorator to no-self-use methods * fix: str(headers)->headers_str * fix: error message * fix: revert "str(headers)->headers_str" and ignore assignment CaseInsensitiveDict with str * fix: mypy error
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from datetime import datetime
|
|
|
|
from waybackpy.cdx_snapshot import CDXSnapshot
|
|
|
|
|
|
def test_CDXSnapshot() -> None:
|
|
sample_input = (
|
|
"org,archive)/ 20080126045828 http://github.com "
|
|
"text/html 200 Q4YULN754FHV2U6Q5JUT6Q2P57WEWNNY 1415"
|
|
)
|
|
prop_values = sample_input.split(" ")
|
|
properties = {}
|
|
(
|
|
properties["urlkey"],
|
|
properties["timestamp"],
|
|
properties["original"],
|
|
properties["mimetype"],
|
|
properties["statuscode"],
|
|
properties["digest"],
|
|
properties["length"],
|
|
) = prop_values
|
|
|
|
snapshot = CDXSnapshot(properties)
|
|
|
|
assert properties["urlkey"] == snapshot.urlkey
|
|
assert properties["timestamp"] == snapshot.timestamp
|
|
assert properties["original"] == snapshot.original
|
|
assert properties["mimetype"] == snapshot.mimetype
|
|
assert properties["statuscode"] == snapshot.statuscode
|
|
assert properties["digest"] == snapshot.digest
|
|
assert properties["length"] == snapshot.length
|
|
assert (
|
|
datetime.strptime(properties["timestamp"], "%Y%m%d%H%M%S")
|
|
== snapshot.datetime_timestamp
|
|
)
|
|
archive_url = (
|
|
"https://web.archive.org/web/"
|
|
+ properties["timestamp"]
|
|
+ "/"
|
|
+ properties["original"]
|
|
)
|
|
assert archive_url == snapshot.archive_url
|
|
assert sample_input == str(snapshot)
|