moto/tests/test_glacier/test_glacier_archives.py
2022-01-27 09:40:42 -01:00

62 lines
1.9 KiB
Python

import boto3
import os
import sure # noqa # pylint: disable=unused-import
import pytest
from moto import mock_glacier
@mock_glacier
def test_upload_archive():
client = boto3.client("glacier", region_name="us-west-2")
client.create_vault(vaultName="asdf")
res = client.upload_archive(
vaultName="asdf", archiveDescription="my archive", body=b"body of archive"
)
res["ResponseMetadata"]["HTTPStatusCode"].should.equal(201)
headers = res["ResponseMetadata"]["HTTPHeaders"]
headers.should.have.key("x-amz-archive-id")
headers.should.have.key("x-amz-sha256-tree-hash")
res.should.have.key("checksum")
res.should.have.key("archiveId")
@mock_glacier
def test_upload_zip_archive():
client = boto3.client("glacier", region_name="us-west-2")
client.create_vault(vaultName="asdf")
path = "test.gz"
with open(os.path.join(os.path.dirname(__file__), path), mode="rb") as archive:
content = archive.read()
res = client.upload_archive(vaultName="asdf", body=content)
res["ResponseMetadata"]["HTTPStatusCode"].should.equal(201)
res.should.have.key("checksum")
@mock_glacier
def test_delete_archive():
client = boto3.client("glacier", region_name="us-west-2")
client.create_vault(vaultName="asdf")
archive = client.upload_archive(vaultName="asdf", body=b"body of archive")
delete = client.delete_archive(vaultName="asdf", archiveId=archive["archiveId"])
delete["ResponseMetadata"]["HTTPStatusCode"].should.equal(204)
with pytest.raises(Exception):
# Not ideal - but this will throw an error if the archvie does not exist
# Which is a good indication that the deletion went through
client.initiate_job(
vaultName="myname",
jobParameters={
"ArchiveId": archive["archiveId"],
"Type": "archive-retrieval",
},
)