OCI Distribution Conformance Tests

Summary
59 passed3 skipped
Start Time Dec 4 21:08:51.475 +0000 UTC
End Time Dec 4 21:08:53.602 +0000 UTC
Time Elapsed 2.127270159s
Test Version unknown
Configuration
OCI_ROOT_URL=http://127.0.0.1:8096
OCI_NAMESPACE=vsoch/django-oci
OCI_DEBUG=true
OCI_TEST_PULL=1
OCI_TEST_PUSH=1
OCI_TEST_CONTENT_DISCOVERY=1
OCI_TEST_CONTENT_MANAGEMENT=1

Pull

Setup

+

Populate registry with test blob


+

Populate registry with test layer


+

Populate registry with test manifest


+

Get the name of a tag


+

Get tag name from environment



Pull blobs

+

HEAD request to nonexistent blob should result in 404 response


+

HEAD request to existing blob should yield 200


+

GET nonexistent blob should result in 404 response


+

GET request to existing blob URL should yield 200



Pull manifests

+

HEAD request to nonexistent manifest should return 404


+

HEAD request to manifest path (digest) should yield 200 response


+

HEAD request to manifest path (tag) should yield 200 response


+

GET nonexistent manifest should return 404


+

GET request to manifest path (digest) should yield 200 response


+

GET request to manifest path (tag) should yield 200 response



Error codes

+

400 response body should contain OCI-conforming JSON message



Teardown

+

Delete config blob created in setup


+

Delete layer blob created in setup


+

Delete manifest created in setup



Push

Blob Upload Streamed

+

PATCH request with blob in body should yield 202 response


+

PUT request to session URL with digest should yield 201 response



Blob Upload Monolithic

+

GET nonexistent blob should result in 404 response


+

POST request with digest and blob should yield a 201 or 202


+

GET request to blob URL from prior request should yield 200 or 404 based on response code


+

POST request should yield a session ID


+

PUT upload of a blob should yield a 201 Response


+

GET request to existing blob should yield 200 response


+

PUT upload of a layer blob should yield a 201 Response


+

GET request to existing layer should yield 200 response



Blob Upload Chunked

+

Out-of-order blob upload should return 416


+

PATCH request with first chunk should return 202


+

PUT request with final chunk should return 201



Cross-Repository Blob Mount

+

POST request to mount another repository's blob should return 201 or 202


+

GET request to test digest within cross-mount namespace should return 200


+

Cross-mounting of nonexistent blob should yield session id



Manifest Upload

+

GET nonexistent manifest should return 404


+

PUT should accept a manifest upload


+

Registry should accept a manifest upload with no layers


+

GET request to manifest URL (digest) should yield 200 response



Teardown

+

Delete config blob created in tests


+

Delete layer blob created in setup


+

Delete manifest created in tests



Content Discovery

Setup

+

Populate registry with test blob


+

Populate registry with test layer


+

Populate registry with test tags


+

Populate registry with test tags (no push)



Test content discovery endpoints

+

GET request to list tags should yield 200 response


+

GET number of tags should be limitable by `n` query parameter


+

GET start of tag is set by `last` query parameter



Teardown

+

Delete config blob created in tests


+

Delete layer blob created in setup


+

Delete created manifest & associated tags



Content Management

Setup

+

Populate registry with test config blob


+

Populate registry with test layer


+

Populate registry with test tag


+

Check how many tags there are before anything gets deleted



Manifest delete

+

DELETE request to manifest tag should return 202, unless tag deletion is disallowed (400/405)


+

DELETE request to manifest (digest) should yield 202 response unless already deleted


+

GET request to deleted manifest URL should yield 404 response, unless delete is disallowed


+

GET request to tags list should reflect manifest deletion



Blob delete

+

DELETE request to blob URL should yield 202 response


+

GET request to deleted blob URL should yield 404 response