Updated AWS unit tests for the request signing mocks with the new method 
signatures.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/57a0ca90
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/57a0ca90
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/57a0ca90

Branch: refs/heads/trunk
Commit: 57a0ca90fe29fdc617cc62564325e8ae91c15e14
Parents: 4bde5af
Author: anthony-shaw <anthony.p.s...@gmail.com>
Authored: Sun Jan 3 21:01:23 2016 +1100
Committer: anthony-shaw <anthony.p.s...@gmail.com>
Committed: Sun Jan 3 21:01:23 2016 +1100

----------------------------------------------------------------------
 libcloud/test/common/test_aws.py | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/57a0ca90/libcloud/test/common/test_aws.py
----------------------------------------------------------------------
diff --git a/libcloud/test/common/test_aws.py b/libcloud/test/common/test_aws.py
index 6661f7d..c855534 100644
--- a/libcloud/test/common/test_aws.py
+++ b/libcloud/test/common/test_aws.py
@@ -53,10 +53,10 @@ class AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
                               
'SignedHeaders=accept-encoding;host;user-agent;x-amz-date, '
                               
'Signature=f9868f8414b3c3f856c7955019cc1691265541f5162b9b772d26044280d39bd3')
 
-    def test_v4_signature_raises_error_if_request_method_not_GET(self):
+    def test_v4_signature_raises_error_if_request_method_not_GET_OR_POST(self):
         with self.assertRaises(Exception):
             self.signer._get_authorization_v4_header(params={}, headers={},
-                                                     dt=self.now, 
method='POST')
+                                                     dt=self.now, method='PUT')
 
     def test_v4_signature_contains_user_id(self):
         sig = self.signer._get_authorization_v4_header(params={}, headers={},
@@ -97,7 +97,7 @@ class AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
                     mock_get_key.return_value = 'my_signing_key'
                     mock_get_string.return_value = 'my_string_to_sign'
                     sig = self.signer._get_signature({}, {}, self.now,
-                                                     method='GET', path='/')
+                                                     method='GET', path='/', 
data=None)
 
         self.assertEqual(sig, 'H|my_signing_key|my_string_to_sign')
 
@@ -105,7 +105,7 @@ class AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
         with mock.patch('hashlib.sha256') as mock_sha256:
             mock_sha256.return_value.hexdigest.return_value = 
'chksum_of_canonical_request'
             to_sign = self.signer._get_string_to_sign({}, {}, self.now,
-                                                      method='GET', path='/')
+                                                      method='GET', path='/', 
data=None)
 
         self.assertEqual(to_sign,
                          'AWS4-HMAC-SHA256\n'
@@ -216,7 +216,7 @@ class AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
 
     def 
test_get_payload_hash_returns_digest_of_empty_string_for_GET_requests(self):
         SignedAWSConnection.method = 'GET'
-        self.assertEqual(self.signer._get_payload_hash(),
+        self.assertEqual(self.signer._get_payload_hash(method='GET'),
                          
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
 
     def test_get_canonical_request(self):
@@ -224,7 +224,8 @@ class AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
             {'Action': 'DescribeInstances', 'Version': '2013-10-15'},
             {'Accept-Encoding': 'gzip,deflate', 'User-Agent': 'My-UA'},
             method='GET',
-            path='/my_action/'
+            path='/my_action/',
+            data=None
         )
         self.assertEqual(req, 'GET\n'
                               '/my_action/\n'
@@ -235,5 +236,22 @@ class 
AWSRequestSignerAlgorithmV4TestCase(LibcloudTestCase):
                               'accept-encoding;user-agent\n'
                               
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
 
+    def test_post_canonical_request(self):
+        req = self.signer._get_canonical_request(
+            {'Action': 'DescribeInstances', 'Version': '2013-10-15'},
+            {'Accept-Encoding': 'gzip,deflate', 'User-Agent': 'My-UA'},
+            method='POST',
+            path='/my_action/',
+            data='{}'
+        )
+        self.assertEqual(req, 'POST\n'
+                              '/my_action/\n'
+                              'Action=DescribeInstances&Version=2013-10-15\n'
+                              'accept-encoding:gzip,deflate\n'
+                              'user-agent:My-UA\n'
+                              '\n'
+                              'accept-encoding;user-agent\n'
+                              
'44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a')
+
 if __name__ == '__main__':
     sys.exit(unittest.main())

Reply via email to