Add unit tests for test_subresource

Add a unit test for canned_acl_grantee function.
And more, add a few minor unit test to increase the test coverage.

Change-Id: I9af2c971540d31c27b58ff82024b800376ffd84f
This commit is contained in:
Kota Tsuyuzaki
2015-04-08 18:16:56 -07:00
parent aee33999d3
commit 3bd412b33d

View File

@@ -17,12 +17,13 @@ import unittest
from swift.common.utils import json
from swift3.response import AccessDenied, InvalidArgument
from swift3.response import AccessDenied, InvalidArgument, S3NotImplemented
from swift3.subresource import User, AuthenticatedUsers, AllUsers, \
ACLPrivate, ACLPublicRead, ACLPublicReadWrite, ACLAuthenticatedRead, \
ACLBucketOwnerRead, ACLBucketOwnerFullControl, Owner, ACL, encode_acl, \
decode_acl, canned_acl_grantees
decode_acl, canned_acl_grantees, Grantee
from swift3.utils import CONF, sysmeta_header
from swift3.exception import InvalidSubresource
class TestSwift3Subresource(unittest.TestCase):
@@ -238,6 +239,17 @@ class TestSwift3Subresource(unittest.TestCase):
self.assertEqual(None, acl.owner.id)
self.assertEqual(len(acl.grants), 0)
def test_decode_acl_empty_list(self):
headers = {sysmeta_header('container', 'acl'): '[]'}
acl = decode_acl('container', headers)
self.assertEqual(type(acl), ACL)
self.assertEqual(None, acl.owner.id)
self.assertEqual(len(acl.grants), 0)
def test_decode_acl_with_invalid_json(self):
headers = {sysmeta_header('container', 'acl'): '['}
self.assertRaises(InvalidSubresource, decode_acl, 'container', headers)
def test_encode_acl_container(self):
acl = ACLPrivate(Owner(id='test:tester',
name='test:tester'))
@@ -284,7 +296,6 @@ class TestSwift3Subresource(unittest.TestCase):
'bucket-owner-full-control', 'log-delivery-write']
owner = Owner('test:tester', 'test:tester')
# TODO: make a test for canned_acl_grantees function
grantee_map = canned_acl_grantees(owner)
for acl_str in canned_acls:
@@ -318,6 +329,19 @@ class TestSwift3Subresource(unittest.TestCase):
self.assertTrue('argument_value' in cm.exception.info)
self.assertEquals(cm.exception.info['argument_value'], 'invalid')
def test_canned_acl_grantees(self):
grantee_map = canned_acl_grantees(Owner('test:tester', 'test:tester'))
canned_acls = ['private', 'public-read', 'public-read-write',
'authenticated-read', 'bucket-owner-read',
'bucket-owner-full-control', 'log-delivery-write']
for canned_acl in canned_acls:
self.assertTrue(canned_acl in grantee_map)
self.assertEquals(len(canned_acls), len(grantee_map)) # sanity
def test_base_grantee(self):
grantee = Grantee()
func = lambda: '' in grantee
self.assertRaises(S3NotImplemented, func)
if __name__ == '__main__':
unittest.main()