Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(559)

Unified Diff: third_party/gsutil/boto/tests/unit/dynamodb/test_batch.py

Issue 12317103: Added gsutil to depot tools (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: added readme Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/boto/tests/unit/dynamodb/test_batch.py
diff --git a/third_party/gsutil/boto/tests/unit/dynamodb/test_batch.py b/third_party/gsutil/boto/tests/unit/dynamodb/test_batch.py
new file mode 100644
index 0000000000000000000000000000000000000000..545aed7b27c19af02881b6fd9ae2cfdfa2eaed2b
--- /dev/null
+++ b/third_party/gsutil/boto/tests/unit/dynamodb/test_batch.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. 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.
+#
+from tests.unit import unittest
+
+from boto.dynamodb.batch import Batch
+from boto.dynamodb.table import Table
+from boto.dynamodb.layer2 import Layer2
+from boto.dynamodb.batch import BatchList
+
+
+DESCRIBE_TABLE_1 = {
+ 'Table': {
+ 'CreationDateTime': 1349910554.478,
+ 'ItemCount': 1,
+ 'KeySchema': {'HashKeyElement': {'AttributeName': u'foo',
+ 'AttributeType': u'S'}},
+ 'ProvisionedThroughput': {'ReadCapacityUnits': 10,
+ 'WriteCapacityUnits': 10},
+ 'TableName': 'testtable',
+ 'TableSizeBytes': 54,
+ 'TableStatus': 'ACTIVE'}
+}
+
+DESCRIBE_TABLE_2 = {
+ 'Table': {
+ 'CreationDateTime': 1349910554.478,
+ 'ItemCount': 1,
+ 'KeySchema': {'HashKeyElement': {'AttributeName': u'baz',
+ 'AttributeType': u'S'},
+ 'RangeKeyElement': {'AttributeName': 'myrange',
+ 'AttributeType': 'N'}},
+ 'ProvisionedThroughput': {'ReadCapacityUnits': 10,
+ 'WriteCapacityUnits': 10},
+ 'TableName': 'testtable2',
+ 'TableSizeBytes': 54,
+ 'TableStatus': 'ACTIVE'}
+}
+
+
+class TestBatchObjects(unittest.TestCase):
+ maxDiff = None
+
+ def setUp(self):
+ self.layer2 = Layer2('access_key', 'secret_key')
+ self.table = Table(self.layer2, DESCRIBE_TABLE_1)
+ self.table2 = Table(self.layer2, DESCRIBE_TABLE_2)
+
+ def test_batch_to_dict(self):
+ b = Batch(self.table, ['k1', 'k2'], attributes_to_get=['foo'],
+ consistent_read=True)
+ self.assertDictEqual(
+ b.to_dict(),
+ {'AttributesToGet': ['foo'],
+ 'Keys': [{'HashKeyElement': {'S': 'k1'}},
+ {'HashKeyElement': {'S': 'k2'}}],
+ 'ConsistentRead': True}
+ )
+
+ def test_batch_consistent_read_defaults_to_false(self):
+ b = Batch(self.table, ['k1'])
+ self.assertDictEqual(
+ b.to_dict(),
+ {'Keys': [{'HashKeyElement': {'S': 'k1'}}],
+ 'ConsistentRead': False}
+ )
+
+ def test_batch_list_consistent_read(self):
+ b = BatchList(self.layer2)
+ b.add_batch(self.table, ['k1'], ['foo'], consistent_read=True)
+ b.add_batch(self.table2, [('k2', 54)], ['bar'], consistent_read=False)
+ self.assertDictEqual(
+ b.to_dict(),
+ {'testtable': {'AttributesToGet': ['foo'],
+ 'Keys': [{'HashKeyElement': {'S': 'k1'}}],
+ 'ConsistentRead': True},
+ 'testtable2': {'AttributesToGet': ['bar'],
+ 'Keys': [{'HashKeyElement': {'S': 'k2'},
+ 'RangeKeyElement': {'N': '54'}}],
+ 'ConsistentRead': False}})
+
+
+if __name__ == '__main__':
+ unittest.main()

Powered by Google App Engine
This is Rietveld 408576698