From 3bd412b33d524bb84bffbe5bd97642faaab71703 Mon Sep 17 00:00:00 2001 From: Kota Tsuyuzaki Date: Wed, 8 Apr 2015 18:16:56 -0700 Subject: [PATCH] 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 --- swift3/test/unit/test_subresource.py | 30 +++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/swift3/test/unit/test_subresource.py b/swift3/test/unit/test_subresource.py index c7ce98dc..ad9d2846 100644 --- a/swift3/test/unit/test_subresource.py +++ b/swift3/test/unit/test_subresource.py @@ -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()