IQ.Pilot Release Commit @ 4521b0f
This commit is contained in:
@@ -3,18 +3,42 @@ import os
|
||||
import requests
|
||||
|
||||
TEST_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)))
|
||||
MANIFEST = os.path.join(TEST_DIR, "../agnos.json")
|
||||
MANIFESTS = [
|
||||
os.path.join(TEST_DIR, "../agnos.json"),
|
||||
os.path.join(TEST_DIR, "../agnos_tici_15_1.json"),
|
||||
]
|
||||
|
||||
IMAGE_HOST = "gitlvb.teallvbs.xyz"
|
||||
|
||||
# image payloads are xz streams; the repo raw endpoint would serve an LFS pointer
|
||||
XZ_MAGIC = b"\xfd7zXZ\x00"
|
||||
LFS_POINTER_MAGIC = b"version https://git-lfs"
|
||||
|
||||
|
||||
class TestAgnosUpdater:
|
||||
|
||||
def test_manifest(self):
|
||||
with open(MANIFEST) as f:
|
||||
m = json.load(f)
|
||||
for manifest in MANIFESTS:
|
||||
with open(manifest) as f:
|
||||
m = json.load(f)
|
||||
|
||||
for img in m:
|
||||
r = requests.head(img['url'], timeout=10)
|
||||
r.raise_for_status()
|
||||
assert r.headers['Content-Type'].split(';', 1)[0] in {"application/x-xz", "application/octet-stream"}
|
||||
if not img['sparse']:
|
||||
assert img['hash'] == img['hash_raw']
|
||||
for img in m:
|
||||
assert img['url'].split('/')[2] == IMAGE_HOST
|
||||
if not img['sparse']:
|
||||
assert img['hash'] == img['hash_raw']
|
||||
|
||||
# contract: images are distributed from a private repo, so an anonymous
|
||||
# request must never receive image content. The denial status varies by
|
||||
# route (404 via the CDN, catch-all HTML page when resolved directly to
|
||||
# the origin), so assert on the payload, not the status code. trust_env
|
||||
# off: requests otherwise picks up ~/.netrc (CI runners have gitlvb
|
||||
# credentials), silently authenticating the "anonymous" probe.
|
||||
s = requests.Session()
|
||||
s.trust_env = False
|
||||
r = s.get(img['url'], timeout=10, stream=True,
|
||||
headers={"User-Agent": "IQOS-Updater"})
|
||||
if r.status_code in (401, 403, 404):
|
||||
continue
|
||||
head = next(r.iter_content(chunk_size=256), b"") or b""
|
||||
assert not head.startswith(XZ_MAGIC), f"{img['name']}: anonymous request served image content"
|
||||
assert not head.startswith(LFS_POINTER_MAGIC), f"{img['name']}: anonymous request served the LFS pointer"
|
||||
|
||||
Reference in New Issue
Block a user