From cd8a32ed1f26999582965a03f54f782491b00c60 Mon Sep 17 00:00:00 2001 From: Akash Mahanty Date: Mon, 24 Jan 2022 16:29:44 +0530 Subject: [PATCH] added tests for cdx_snapshot.py at tests/test_cdx_snapshot.py --- tests/test_cdx_snapshot.py | 41 ++++++++++++++++++++++++++++++++++++++ waybackpy/cdx_snapshot.py | 8 ++++++++ 2 files changed, 49 insertions(+) create mode 100644 tests/test_cdx_snapshot.py diff --git a/tests/test_cdx_snapshot.py b/tests/test_cdx_snapshot.py new file mode 100644 index 0000000..0f9034f --- /dev/null +++ b/tests/test_cdx_snapshot.py @@ -0,0 +1,41 @@ +import pytest +from datetime import datetime + +from waybackpy.cdx_snapshot import CDXSnapshot + + +def test_CDXSnapshot(): + 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) diff --git a/waybackpy/cdx_snapshot.py b/waybackpy/cdx_snapshot.py index 9dcfab7..58d4e8b 100644 --- a/waybackpy/cdx_snapshot.py +++ b/waybackpy/cdx_snapshot.py @@ -2,6 +2,14 @@ from datetime import datetime class CDXSnapshot: + """ + Class for the CDX snapshot lines returned by the CDX API, + Each valid line of the CDX API is casted to an CDXSnapshot object + by the CDX API interface. + This provides the end-user the ease of using the data as attributes + of the CDXSnapshot. + """ + def __init__(self, properties): self.urlkey = properties["urlkey"] self.timestamp = properties["timestamp"]