summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()