summaryrefslogtreecommitdiffstats
path: root/python/tests
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2021-11-05 14:40:07 -0700
committerBryan Newbold <bnewbold@robocracy.org>2021-11-05 14:40:10 -0700
commit282c38de521da379a2ea6407c6ff72e21f09c65c (patch)
tree4ea905441b60565ae2cf4760649e292cb1fc9e80 /python/tests
parentc87befeff80f609e0890ec608d9e65186ae528e8 (diff)
downloadfatcat-282c38de521da379a2ea6407c6ff72e21f09c65c.tar.gz
fatcat-282c38de521da379a2ea6407c6ff72e21f09c65c.zip
python tests: verify array sort order
In a couple cases (eg, filesets), had made tests agnostic to sort order, because the sort order was not stable. In other cases, simply small cleanups and comment improvements.
Diffstat (limited to 'python/tests')
-rw-r--r--python/tests/api_containers.py1
-rw-r--r--python/tests/api_files.py4
-rw-r--r--python/tests/api_filesets.py8
-rw-r--r--python/tests/api_webcaptures.py25
4 files changed, 18 insertions, 20 deletions
diff --git a/python/tests/api_containers.py b/python/tests/api_containers.py
index d6fd421a..f185fdb2 100644
--- a/python/tests/api_containers.py
+++ b/python/tests/api_containers.py
@@ -11,6 +11,7 @@ def test_container(api):
name="some container name",
container_type="journal",
publisher="some container publisher",
+ publication_status="active",
issnl="1234-567X",
issne="1230-0000",
issnp="1234-0001",
diff --git a/python/tests/api_files.py b/python/tests/api_files.py
index 443fe63f..8f9caf3e 100644
--- a/python/tests/api_files.py
+++ b/python/tests/api_files.py
@@ -18,6 +18,10 @@ def test_file(api):
url="https://web.archive.org/web/12345542/something.com/blah.pdf",
rel="webarchive",
),
+ FileUrl(
+ url="https://something.com/blah.pdf",
+ rel="web",
+ ),
],
release_ids=[],
extra=dict(a=2, b=5),
diff --git a/python/tests/api_filesets.py b/python/tests/api_filesets.py
index 1ec0df17..d7654eb9 100644
--- a/python/tests/api_filesets.py
+++ b/python/tests/api_filesets.py
@@ -50,17 +50,13 @@ def test_fileset(api):
# check that fields match
assert fs1.urls == fs2.urls
- # XXX: manifest return order is *NOT* currently stable
- assert (fs1.manifest == fs2.manifest) or (fs1.manifest == list(reversed(fs2.manifest)))
+ assert fs1.manifest == fs2.manifest
assert fs1.release_ids == fs2.release_ids
assert fs1.extra == fs2.extra
# expansion
r1 = api.get_release(r1edit.ident, expand="filesets")
- # XXX: manifest return order is *NOT* currently stable
- assert (r1.filesets[0].manifest == fs1.manifest) or (
- r1.filesets[0].manifest == list(reversed(fs1.manifest))
- )
+ assert r1.filesets[0].manifest == fs1.manifest
# get redirects (none)
assert api.get_fileset_redirects(fs2.ident) == []
diff --git a/python/tests/api_webcaptures.py b/python/tests/api_webcaptures.py
index 36bf40e9..76bc68c0 100644
--- a/python/tests/api_webcaptures.py
+++ b/python/tests/api_webcaptures.py
@@ -11,15 +11,17 @@ def test_webcapture(api):
r1 = ReleaseEntity(title="test webcapture release", ext_ids=ReleaseExtIds())
r1edit = api.create_release(eg.editgroup_id, r1)
+ # using datetime.datetime in this object construction to make exact object
+ # comparisons easier. it is also possible to pass an ISO datetime string
+ # (including timezone)
+ now = datetime.datetime.now(datetime.timezone.utc)
wc1 = WebcaptureEntity(
original_url="http://example.site",
- # timestamp = "2012-01-02T03:04:05Z",
- timestamp=datetime.datetime.now(datetime.timezone.utc),
+ timestamp=now,
cdx=[
WebcaptureCdxLine(
surt="site,example,)/data/thing.tar.gz",
- # timestamp="2012-01-02T03:04:05Z",
- timestamp=datetime.datetime.now(datetime.timezone.utc),
+ timestamp=now,
url="http://example.site/data/thing.tar.gz",
mimetype="application/gzip",
status_code=200,
@@ -29,8 +31,7 @@ def test_webcapture(api):
),
WebcaptureCdxLine(
surt="site,example,)/README.md",
- # timestamp="2012-01-02T03:04:05Z",
- timestamp=datetime.datetime.now(datetime.timezone.utc),
+ timestamp=now,
url="http://example.site/README.md",
mimetype="text/markdown",
status_code=200,
@@ -59,12 +60,9 @@ def test_webcapture(api):
assert wc2.timestamp == wc2_rev.timestamp
# check that fields match
- # I don't know why these aren't equal...
- # print(wc1.archive_urls)
- # print(wc2.archive_urls)
- # assert wc1.archive_urls == wc2.archive_urls
- assert wc1.archive_urls[0].rel == wc2.archive_urls[0].rel
- assert wc1.archive_urls[0].url == wc2.archive_urls[0].url
+ for i in range(len(wc1.archive_urls)):
+ assert wc1.archive_urls[i].rel == wc2.archive_urls[i].rel
+ assert wc1.archive_urls[i].url == wc2.archive_urls[i].url
assert wc1.cdx[0] == wc2.cdx[0]
assert wc1.cdx[0].size == wc2.cdx[0].size
assert wc1.cdx == wc2.cdx
@@ -73,9 +71,8 @@ def test_webcapture(api):
assert wc1.original_url == wc2.original_url
assert wc1.extra == wc2.extra
- # TODO: check release expansion
+ # check release expansion
r1 = api.get_release(r1edit.ident, expand="webcaptures")
- print(r1)
assert r1.webcaptures[0].cdx == wc1.cdx
# get redirects (none)