Add basics of Glacier.
This commit is contained in:
parent
7156df1a63
commit
625b1d2ac6
7 changed files with 297 additions and 3 deletions
21
tests/test_glacier/test_glacier_archives.py
Normal file
21
tests/test_glacier/test_glacier_archives.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
from tempfile import NamedTemporaryFile
|
||||
import boto.glacier
|
||||
import sure # noqa
|
||||
|
||||
from moto import mock_glacier
|
||||
|
||||
|
||||
@mock_glacier
|
||||
def test_create_and_delete_archive():
|
||||
the_file = NamedTemporaryFile(delete=False)
|
||||
the_file.write("some stuff")
|
||||
the_file.close()
|
||||
|
||||
conn = boto.glacier.connect_to_region("us-west-2")
|
||||
vault = conn.create_vault("my_vault")
|
||||
|
||||
archive_id = vault.upload_archive(the_file.name)
|
||||
|
||||
vault.delete_archive(archive_id)
|
||||
94
tests/test_glacier/test_glacier_jobs.py
Normal file
94
tests/test_glacier/test_glacier_jobs.py
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
|
||||
from boto.glacier.layer1 import Layer1
|
||||
import sure # noqa
|
||||
|
||||
from moto import mock_glacier
|
||||
|
||||
|
||||
@mock_glacier
|
||||
def test_init_glacier_job():
|
||||
conn = Layer1(region_name="us-west-2")
|
||||
vault_name = "my_vault"
|
||||
conn.create_vault(vault_name)
|
||||
archive_id = conn.upload_archive(vault_name, "some stuff", "", "", "some description")
|
||||
|
||||
job_response = conn.initiate_job(vault_name, {
|
||||
"ArchiveId": archive_id,
|
||||
"Type": "archive-retrieval",
|
||||
})
|
||||
job_id = job_response['JobId']
|
||||
job_response['Location'].should.equal("//vaults/my_vault/jobs/{0}".format(job_id))
|
||||
|
||||
|
||||
@mock_glacier
|
||||
def test_describe_job():
|
||||
conn = Layer1(region_name="us-west-2")
|
||||
vault_name = "my_vault"
|
||||
conn.create_vault(vault_name)
|
||||
archive_id = conn.upload_archive(vault_name, "some stuff", "", "", "some description")
|
||||
job_response = conn.initiate_job(vault_name, {
|
||||
"ArchiveId": archive_id,
|
||||
"Type": "archive-retrieval",
|
||||
})
|
||||
job_id = job_response['JobId']
|
||||
|
||||
job = conn.describe_job(vault_name, job_id)
|
||||
json.loads(job.read()).should.equal({
|
||||
'CompletionDate': '2013-03-20T17:03:43.221Z',
|
||||
'VaultARN': None,
|
||||
'RetrievalByteRange': None,
|
||||
'SHA256TreeHash': None,
|
||||
'Completed': True,
|
||||
'InventorySizeInBytes': '0',
|
||||
'JobId': job_id,
|
||||
'Action': 'InventoryRetrieval',
|
||||
'JobDescription': None,
|
||||
'SNSTopic': None,
|
||||
'ArchiveSizeInBytes': 0,
|
||||
'ArchiveId': archive_id,
|
||||
'ArchiveSHA256TreeHash': None,
|
||||
'CreationDate': '2013-03-20T17:03:43.221Z',
|
||||
'StatusMessage': None,
|
||||
'StatusCode': 'Succeeded',
|
||||
})
|
||||
|
||||
|
||||
@mock_glacier
|
||||
def test_list_glacier_jobs():
|
||||
conn = Layer1(region_name="us-west-2")
|
||||
vault_name = "my_vault"
|
||||
conn.create_vault(vault_name)
|
||||
archive_id1 = conn.upload_archive(vault_name, "some stuff", "", "", "some description")['ArchiveId']
|
||||
archive_id2 = conn.upload_archive(vault_name, "some other stuff", "", "", "some description")['ArchiveId']
|
||||
|
||||
conn.initiate_job(vault_name, {
|
||||
"ArchiveId": archive_id1,
|
||||
"Type": "archive-retrieval",
|
||||
})
|
||||
conn.initiate_job(vault_name, {
|
||||
"ArchiveId": archive_id2,
|
||||
"Type": "archive-retrieval",
|
||||
})
|
||||
|
||||
jobs = conn.list_jobs(vault_name)
|
||||
len(jobs['JobList']).should.equal(2)
|
||||
|
||||
|
||||
@mock_glacier
|
||||
def test_get_job_output():
|
||||
conn = Layer1(region_name="us-west-2")
|
||||
vault_name = "my_vault"
|
||||
conn.create_vault(vault_name)
|
||||
archive_response = conn.upload_archive(vault_name, "some stuff", "", "", "some description")
|
||||
archive_id = archive_response['ArchiveId']
|
||||
job_response = conn.initiate_job(vault_name, {
|
||||
"ArchiveId": archive_id,
|
||||
"Type": "archive-retrieval",
|
||||
})
|
||||
job_id = job_response['JobId']
|
||||
|
||||
output = conn.get_job_output(vault_name, job_id)
|
||||
output.read().should.equal("some stuff")
|
||||
|
|
@ -18,4 +18,4 @@ def test_list_vaults():
|
|||
|
||||
res = test_client.get('/1234bcd/vaults')
|
||||
|
||||
json.loads(res.data).should.equal({u'Marker': None, u'VaultList': []})
|
||||
json.loads(res.data.decode("utf-8")).should.equal({u'Marker': None, u'VaultList': []})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue