diff options
author | nordstromj <jnordstrom91@gmail.com> | 2015-01-15 09:25:33 -0800 |
---|---|---|
committer | jnordstrom <jnordstrom@cleversafe.com> | 2015-01-15 09:25:33 -0800 |
commit | 9721b6b7451a9d361b42d9e364e1a4c6b404cfe5 (patch) | |
tree | d804bb95eff0311ee73465eb2b0e8312a3e2551e | |
parent | 53032a14aa4424def0f11997588a6d9f7e901d38 (diff) | |
download | python-requests-aws-9721b6b7451a9d361b42d9e364e1a4c6b404cfe5.tar.gz |
Added tests demonstrating functionality of cors, tagging, and notification.
-rw-r--r-- | test.py | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -2,6 +2,8 @@ import unittest import os import requests from awsauth import S3Auth +import hashlib +import base64 TEST_BUCKET = 'testpolpol' @@ -56,5 +58,56 @@ class TestAWS(unittest.TestCase): r = requests.delete(url, auth=self.auth) self.assertEqual(r.status_code, 204) + def test_put_get_delete_cors(self): + url = 'http://'+ TEST_BUCKET + '.s3.amazonaws.com/?cors' + testdata = '<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">\ + <CORSRule>\ + <AllowedOrigin>*</AllowedOrigin>\ + <AllowedMethod>POST</AllowedMethod>\ + <MaxAgeSeconds>3000</MaxAgeSeconds>\ + <AllowedHeader>Authorization</AllowedHeader>\ + </CORSRule>\ + </CORSConfiguration>' + content_md5 = base64.encodestring(hashlib.md5(testdata.strip()).digest()).strip() + r = requests.put(url, data=testdata, auth=self.auth, headers={'content-md5': content_md5}) + self.assertEqual(r.status_code, 200) + # Downloading current cors configuration + r = requests.get(url, auth=self.auth) + self.assertEqual(r.status_code, 200) + # Removing removing cors configuration + r = requests.delete(url, auth=self.auth) + self.assertEqual(r.status_code, 204) + + def test_put_get_delete_tagging(self): + url = 'http://'+ TEST_BUCKET + '.s3.amazonaws.com/?tagging' + testdata = '<Tagging>\ + <TagSet>\ + <Tag>\ + <Key>Project</Key>\ + <Value>Project 1</Value>\ + </Tag>\ + </TagSet>\ + </Tagging>' + content_md5 = base64.encodestring(hashlib.md5(testdata.strip()).digest()).strip() + r = requests.put(url, data=testdata, auth=self.auth, headers={'content-md5': content_md5}) + self.assertEqual(r.status_code, 204) + # Downloading current cors configuration + r = requests.get(url, auth=self.auth) + self.assertEqual(r.status_code, 200) + # Removing removing cors configuration + r = requests.delete(url, auth=self.auth) + self.assertEqual(r.status_code, 204) + + def test_put_get_notification(self): + url = 'http://'+ TEST_BUCKET + '.s3.amazonaws.com/?notification' + testdata = '<NotificationConfiguration></NotificationConfiguration>' + content_md5 = base64.encodestring(hashlib.md5(testdata.strip()).digest()).strip() + r = requests.put(url, data=testdata, auth=self.auth, headers={'content-md5': content_md5}) + self.assertEqual(r.status_code, 200) + # Downloading current cors configuration + r = requests.get(url, auth=self.auth) + self.assertEqual(r.status_code, 200) + # No Delete ?notification API, empty <NotificationConfiguration> tag is default + if __name__ == '__main__': unittest.main() |