summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornordstromj <jnordstrom91@gmail.com>2015-01-15 09:25:33 -0800
committerjnordstrom <jnordstrom@cleversafe.com>2015-01-15 09:25:33 -0800
commit9721b6b7451a9d361b42d9e364e1a4c6b404cfe5 (patch)
treed804bb95eff0311ee73465eb2b0e8312a3e2551e
parent53032a14aa4424def0f11997588a6d9f7e901d38 (diff)
downloadpython-requests-aws-9721b6b7451a9d361b42d9e364e1a4c6b404cfe5.tar.gz
Added tests demonstrating functionality of cors, tagging, and notification.
-rw-r--r--test.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/test.py b/test.py
index 1d8f6e7..719cd66 100644
--- a/test.py
+++ b/test.py
@@ -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()