summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Lindsley <daniel@toastdriven.com>2013-05-29 18:41:37 -0700
committerDaniel Lindsley <daniel@toastdriven.com>2013-05-29 19:53:15 -0700
commit084dd57171ccd37300ce8f70d87c02acd227f048 (patch)
treec12ba083c9a0a753fa16522dc9b3de66dff889dc /tests
parentd4ec5fdecdf3ab5a2d17662bfba53cabfc716c43 (diff)
downloadboto-084dd57171ccd37300ce8f70d87c02acd227f048.tar.gz
Added a testcase to try to demonstrate #443.
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/storage_uri/__init__.py0
-rw-r--r--tests/integration/storage_uri/test_storage_uri.py63
2 files changed, 63 insertions, 0 deletions
diff --git a/tests/integration/storage_uri/__init__.py b/tests/integration/storage_uri/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/integration/storage_uri/__init__.py
diff --git a/tests/integration/storage_uri/test_storage_uri.py b/tests/integration/storage_uri/test_storage_uri.py
new file mode 100644
index 00000000..55dac1ad
--- /dev/null
+++ b/tests/integration/storage_uri/test_storage_uri.py
@@ -0,0 +1,63 @@
+# Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
+# All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+"""
+Some unit tests for StorageUri
+"""
+
+from tests.unit import unittest
+import time
+import boto
+from boto.s3.connection import S3Connection, Location
+
+
+class StorageUriTest(unittest.TestCase):
+ s3 = True
+
+ def nuke_bucket(self, bucket):
+ for key in bucket:
+ key.delete()
+
+ bucket.delete()
+
+ def test_storage_uri_regionless(self):
+ # First, create a bucket in a different region.
+ conn = S3Connection(
+ host='s3-us-west-2.amazonaws.com'
+ )
+ bucket_name = 'keytest-%d' % int(time.time())
+ bucket = conn.create_bucket(bucket_name, location=Location.USWest2)
+ self.addCleanup(self.nuke_bucket, bucket)
+
+ # Now use ``storage_uri`` to try to make a new key.
+ # This would throw a 301 exception.
+ suri = boto.storage_uri('s3://%s/test' % bucket_name)
+ the_key = suri.new_key()
+ the_key.key = 'Test301'
+ the_key.set_contents_from_string(
+ 'This should store in a different region.'
+ )
+
+ # Check it a different way.
+ alt_conn = boto.connect_s3(host='s3-us-west-2.amazonaws.com')
+ alt_bucket = alt_conn.get_bucket(bucket_name)
+ alt_key = alt_bucket.get_key('Test301')