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

Side by Side 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, 9 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 unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved
3 #
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the
6 # "Software"), to deal in the Software without restriction, including
7 # without limitation the rights to use, copy, modify, merge, publish, dis-
8 # tribute, sublicense, and/or sell copies of the Software, and to permit
9 # persons to whom the Software is furnished to do so, subject to the fol-
10 # lowing conditions:
11 #
12 # The above copyright notice and this permission notice shall be included
13 # in all copies or substantial portions of the Software.
14 #
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
17 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
18 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 # IN THE SOFTWARE.
22 #
23 from tests.unit import unittest
24
25 from boto.dynamodb.batch import Batch
26 from boto.dynamodb.table import Table
27 from boto.dynamodb.layer2 import Layer2
28 from boto.dynamodb.batch import BatchList
29
30
31 DESCRIBE_TABLE_1 = {
32 'Table': {
33 'CreationDateTime': 1349910554.478,
34 'ItemCount': 1,
35 'KeySchema': {'HashKeyElement': {'AttributeName': u'foo',
36 'AttributeType': u'S'}},
37 'ProvisionedThroughput': {'ReadCapacityUnits': 10,
38 'WriteCapacityUnits': 10},
39 'TableName': 'testtable',
40 'TableSizeBytes': 54,
41 'TableStatus': 'ACTIVE'}
42 }
43
44 DESCRIBE_TABLE_2 = {
45 'Table': {
46 'CreationDateTime': 1349910554.478,
47 'ItemCount': 1,
48 'KeySchema': {'HashKeyElement': {'AttributeName': u'baz',
49 'AttributeType': u'S'},
50 'RangeKeyElement': {'AttributeName': 'myrange',
51 'AttributeType': 'N'}},
52 'ProvisionedThroughput': {'ReadCapacityUnits': 10,
53 'WriteCapacityUnits': 10},
54 'TableName': 'testtable2',
55 'TableSizeBytes': 54,
56 'TableStatus': 'ACTIVE'}
57 }
58
59
60 class TestBatchObjects(unittest.TestCase):
61 maxDiff = None
62
63 def setUp(self):
64 self.layer2 = Layer2('access_key', 'secret_key')
65 self.table = Table(self.layer2, DESCRIBE_TABLE_1)
66 self.table2 = Table(self.layer2, DESCRIBE_TABLE_2)
67
68 def test_batch_to_dict(self):
69 b = Batch(self.table, ['k1', 'k2'], attributes_to_get=['foo'],
70 consistent_read=True)
71 self.assertDictEqual(
72 b.to_dict(),
73 {'AttributesToGet': ['foo'],
74 'Keys': [{'HashKeyElement': {'S': 'k1'}},
75 {'HashKeyElement': {'S': 'k2'}}],
76 'ConsistentRead': True}
77 )
78
79 def test_batch_consistent_read_defaults_to_false(self):
80 b = Batch(self.table, ['k1'])
81 self.assertDictEqual(
82 b.to_dict(),
83 {'Keys': [{'HashKeyElement': {'S': 'k1'}}],
84 'ConsistentRead': False}
85 )
86
87 def test_batch_list_consistent_read(self):
88 b = BatchList(self.layer2)
89 b.add_batch(self.table, ['k1'], ['foo'], consistent_read=True)
90 b.add_batch(self.table2, [('k2', 54)], ['bar'], consistent_read=False)
91 self.assertDictEqual(
92 b.to_dict(),
93 {'testtable': {'AttributesToGet': ['foo'],
94 'Keys': [{'HashKeyElement': {'S': 'k1'}}],
95 'ConsistentRead': True},
96 'testtable2': {'AttributesToGet': ['bar'],
97 'Keys': [{'HashKeyElement': {'S': 'k2'},
98 'RangeKeyElement': {'N': '54'}}],
99 'ConsistentRead': False}})
100
101
102 if __name__ == '__main__':
103 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698