def test_canonical_string(self): """ The hashes here were generated by running the same requests against boto.utils.canonical_string """ def verify(hash, path, headers): req = Request.blank(path, headers=headers) self.assertEquals(hash, hashlib.md5(swift3.canonical_string(req)).hexdigest()) verify('6dd08c75e42190a1ce9468d1fd2eb787', '/bucket/object', {'Content-Type': 'text/plain', 'X-Amz-Something': 'test', 'Date': 'whatever'}) verify('c8447135da232ae7517328f3429df481', '/bucket/object', {'Content-Type': 'text/plain', 'X-Amz-Something': 'test'}) verify('bf49304103a4de5c325dce6384f2a4a2', '/bucket/object', {'content-type': 'text/plain'}) verify('be01bd15d8d47f9fe5e2d9248cc6f180', '/bucket/object', {}) verify('8d28cc4b8322211f6cc003256cd9439e', 'bucket/object', {'Content-MD5': 'somestuff'}) verify('a822deb31213ad09af37b5a7fe59e55e', '/bucket/object?acl', {}) verify('cce5dd1016595cb706c93f28d3eaa18f', '/bucket/object', {'Content-Type': 'text/plain', 'X-Amz-A': 'test', 'X-Amz-Z': 'whatever', 'X-Amz-B': 'lalala', 'X-Amz-Y': 'lalalalalalala'}) verify('7506d97002c7d2de922cc0ec34af8846', '/bucket/object', {'Content-Type': None, 'X-Amz-Something': 'test'}) verify('28f76d6162444a193b612cd6cb20e0be', '/bucket/object', {'Content-Type': None, 'X-Amz-Date': 'Mon, 11 Jul 2011 10:52:57 +0000', 'Date': 'Tue, 12 Jul 2011 10:52:57 +0000'}) verify('ed6971e3eca5af4ee361f05d7c272e49', '/bucket/object', {'Content-Type': None, 'Date': 'Tue, 12 Jul 2011 10:52:57 +0000'}) req1 = Request.blank('/', headers= {'Content-Type': None, 'X-Amz-Something': 'test'}) req2 = Request.blank('/', headers= {'Content-Type': '', 'X-Amz-Something': 'test'}) req3 = Request.blank('/', headers={'X-Amz-Something': 'test'}) self.assertEquals(swift3.canonical_string(req1), swift3.canonical_string(req2)) self.assertEquals(swift3.canonical_string(req2), swift3.canonical_string(req3))
def verify(hash, path, headers): req = Request.blank(path, headers=headers) self.assertEquals(hash, hashlib.md5(swift3.canonical_string(req)).hexdigest())
def verify(hash, path, headers): req = Request.blank(path, headers=headers) self.assertEquals( hash, hashlib.md5(swift3.canonical_string(req)).hexdigest())
def test_canonical_string(self): """ The hashes here were generated by running the same requests against boto.utils.canonical_string """ def verify(hash, path, headers): req = Request.blank(path, headers=headers) self.assertEquals(hash, hashlib.md5(swift3.canonical_string(req)).hexdigest()) verify( "6dd08c75e42190a1ce9468d1fd2eb787", "/bucket/object", {"Content-Type": "text/plain", "X-Amz-Something": "test", "Date": "whatever"}, ) verify( "c8447135da232ae7517328f3429df481", "/bucket/object", {"Content-Type": "text/plain", "X-Amz-Something": "test"}, ) verify("bf49304103a4de5c325dce6384f2a4a2", "/bucket/object", {"content-type": "text/plain"}) verify("be01bd15d8d47f9fe5e2d9248cc6f180", "/bucket/object", {}) verify("8d28cc4b8322211f6cc003256cd9439e", "bucket/object", {"Content-MD5": "somestuff"}) verify("a822deb31213ad09af37b5a7fe59e55e", "/bucket/object?acl", {}) verify( "cce5dd1016595cb706c93f28d3eaa18f", "/bucket/object", { "Content-Type": "text/plain", "X-Amz-A": "test", "X-Amz-Z": "whatever", "X-Amz-B": "lalala", "X-Amz-Y": "lalalalalalala", }, ) verify("7506d97002c7d2de922cc0ec34af8846", "/bucket/object", {"Content-Type": None, "X-Amz-Something": "test"}) verify( "28f76d6162444a193b612cd6cb20e0be", "/bucket/object", { "Content-Type": None, "X-Amz-Date": "Mon, 11 Jul 2011 10:52:57 +0000", "Date": "Tue, 12 Jul 2011 10:52:57 +0000", }, ) verify( "ed6971e3eca5af4ee361f05d7c272e49", "/bucket/object", {"Content-Type": None, "Date": "Tue, 12 Jul 2011 10:52:57 +0000"}, ) req1 = Request.blank("/", headers={"Content-Type": None, "X-Amz-Something": "test"}) req2 = Request.blank("/", headers={"Content-Type": "", "X-Amz-Something": "test"}) req3 = Request.blank("/", headers={"X-Amz-Something": "test"}) self.assertEquals(swift3.canonical_string(req1), swift3.canonical_string(req2)) self.assertEquals(swift3.canonical_string(req2), swift3.canonical_string(req3))
def test_canonical_string(self): """ The hashes here were generated by running the same requests against boto.utils.canonical_string """ def verify(hash, path, headers): req = Request.blank(path, headers=headers) self.assertEquals( hash, hashlib.md5(swift3.canonical_string(req)).hexdigest()) verify( '6dd08c75e42190a1ce9468d1fd2eb787', '/bucket/object', { 'Content-Type': 'text/plain', 'X-Amz-Something': 'test', 'Date': 'whatever' }) verify('c8447135da232ae7517328f3429df481', '/bucket/object', { 'Content-Type': 'text/plain', 'X-Amz-Something': 'test' }) verify('bf49304103a4de5c325dce6384f2a4a2', '/bucket/object', {'content-type': 'text/plain'}) verify('be01bd15d8d47f9fe5e2d9248cc6f180', '/bucket/object', {}) verify('8d28cc4b8322211f6cc003256cd9439e', 'bucket/object', {'Content-MD5': 'somestuff'}) verify('a822deb31213ad09af37b5a7fe59e55e', '/bucket/object?acl', {}) verify( 'cce5dd1016595cb706c93f28d3eaa18f', '/bucket/object', { 'Content-Type': 'text/plain', 'X-Amz-A': 'test', 'X-Amz-Z': 'whatever', 'X-Amz-B': 'lalala', 'X-Amz-Y': 'lalalalalalala' }) verify('7506d97002c7d2de922cc0ec34af8846', '/bucket/object', { 'Content-Type': None, 'X-Amz-Something': 'test' }) req1 = Request.blank('/', headers={ 'Content-Type': None, 'X-Amz-Something': 'test' }) req2 = Request.blank('/', headers={ 'Content-Type': '', 'X-Amz-Something': 'test' }) req3 = Request.blank('/', headers={'X-Amz-Something': 'test'}) self.assertEquals(swift3.canonical_string(req1), swift3.canonical_string(req2)) self.assertEquals(swift3.canonical_string(req2), swift3.canonical_string(req3))