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

Side by Side Diff: third_party/boto/tests/unit/mws/test_response.py

Issue 698893003: Update checked in version of gsutil to version 4.6 (Closed) Base URL: http://dart.googlecode.com/svn/third_party/gsutil/
Patch Set: Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 import unittest
2 from boto.mws.connection import MWSConnection 3 from boto.mws.connection import MWSConnection
3 from boto.mws.response import (ResponseFactory, ResponseElement, Element, 4 from boto.mws.response import (ResponseFactory, ResponseElement, Element,
4 MemberList, ElementList, SimpleList) 5 MemberList, ElementList, SimpleList)
5 6
6 7
7 from tests.unit import AWSMockServiceTestCase 8 from tests.unit import AWSMockServiceTestCase
8 9
9 10
10 class TestMWSResponse(AWSMockServiceTestCase): 11 class TestMWSResponse(AWSMockServiceTestCase):
11 connection_class = MWSConnection 12 connection_class = MWSConnection
(...skipping 10 matching lines...) Expand all
22 text = """<Test9Response><Test9Result> 23 text = """<Test9Response><Test9Result>
23 <Item> 24 <Item>
24 <Foo>Bar</Foo> 25 <Foo>Bar</Foo>
25 <Nest> 26 <Nest>
26 <Zip>Zap</Zip> 27 <Zip>Zap</Zip>
27 <Zam>Zoo</Zam> 28 <Zam>Zoo</Zam>
28 </Nest> 29 </Nest>
29 <Bif>Bam</Bif> 30 <Bif>Bam</Bif>
30 </Item> 31 </Item>
31 </Test9Result></Test9Response>""" 32 </Test9Result></Test9Response>"""
32 obj = self.issue_test('Test9', Test9Result, text) 33 obj = self.check_issue(Test9Result, text)
33 Item = obj._result.Item 34 Item = obj._result.Item
34 useful = lambda x: not x[0].startswith('_') 35 useful = lambda x: not x[0].startswith('_')
35 nest = dict(filter(useful, Item.Nest.__dict__.items())) 36 nest = dict(filter(useful, Item.Nest.__dict__.items()))
36 self.assertEqual(nest, dict(Zip='Zap', Zam='Zoo')) 37 self.assertEqual(nest, dict(Zip='Zap', Zam='Zoo'))
37 useful = lambda x: not x[0].startswith('_') and not x[0] == 'Nest' 38 useful = lambda x: not x[0].startswith('_') and not x[0] == 'Nest'
38 item = dict(filter(useful, Item.__dict__.items())) 39 item = dict(filter(useful, Item.__dict__.items()))
39 self.assertEqual(item, dict(Foo='Bar', Bif='Bam', Zoom=None)) 40 self.assertEqual(item, dict(Foo='Bar', Bif='Bam', Zoom=None))
40 41
41 def test_parsing_member_list_specification(self): 42 def test_parsing_member_list_specification(self):
42 class Test8extra(ResponseElement): 43 class Test8extra(ResponseElement):
43 Foo = SimpleList() 44 Foo = SimpleList()
44 45
45 class Test8Result(ResponseElement): 46 class Test8Result(ResponseElement):
46 Item = MemberList(SimpleList) 47 Item = MemberList(SimpleList)
47 Extra = MemberList(Test8extra) 48 Extra = MemberList(Test8extra)
48 49
49 text = """<Test8Response><Test8Result> 50 text = """<Test8Response><Test8Result>
50 <Item> 51 <Item>
51 <member>0</member> 52 <member>0</member>
52 <member>1</member> 53 <member>1</member>
53 <member>2</member> 54 <member>2</member>
54 <member>3</member> 55 <member>3</member>
55 </Item> 56 </Item>
56 <Extra> 57 <Extra>
57 <member><Foo>4</Foo><Foo>5</Foo></member> 58 <member><Foo>4</Foo><Foo>5</Foo></member>
58 <member></member> 59 <member></member>
59 <member><Foo>6</Foo><Foo>7</Foo></member> 60 <member><Foo>6</Foo><Foo>7</Foo></member>
60 </Extra> 61 </Extra>
61 </Test8Result></Test8Response>""" 62 </Test8Result></Test8Response>"""
62 obj = self.issue_test('Test8', Test8Result, text) 63 obj = self.check_issue(Test8Result, text)
63 self.assertSequenceEqual( 64 self.assertSequenceEqual(
64 map(int, obj._result.Item), 65 map(int, obj._result.Item),
65 range(4), 66 range(4),
66 ) 67 )
67 self.assertSequenceEqual( 68 self.assertSequenceEqual(
68 map(lambda x: map(int, x.Foo), obj._result.Extra), 69 map(lambda x: map(int, x.Foo), obj._result.Extra),
69 [[4, 5], [], [6, 7]], 70 [[4, 5], [], [6, 7]],
70 ) 71 )
71 72
72 def test_parsing_nested_lists(self): 73 def test_parsing_nested_lists(self):
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 <Simple>1</Simple> 110 <Simple>1</Simple>
110 <Simple>2</Simple> 111 <Simple>2</Simple>
111 <Simple>3</Simple> 112 <Simple>3</Simple>
112 </List> 113 </List>
113 <List> 114 <List>
114 <Complex>Bar</Complex> 115 <Complex>Bar</Complex>
115 </List> 116 </List>
116 </member> 117 </member>
117 </Item> 118 </Item>
118 </Test7Result></Test7Response>""" 119 </Test7Result></Test7Response>"""
119 obj = self.issue_test('Test7', Test7Result, text) 120 obj = self.check_issue(Test7Result, text)
120 item = obj._result.Item 121 item = obj._result.Item
121 self.assertEqual(len(item), 3) 122 self.assertEqual(len(item), 3)
122 nests = [z.Nest for z in filter(lambda x: x.Nest, item)] 123 nests = [z.Nest for z in filter(lambda x: x.Nest, item)]
123 self.assertSequenceEqual( 124 self.assertSequenceEqual(
124 [[y.Data for y in nest] for nest in nests], 125 [[y.Data for y in nest] for nest in nests],
125 [[u'2', u'4', u'6'], [u'1', u'3', u'5']], 126 [[u'2', u'4', u'6'], [u'1', u'3', u'5']],
126 ) 127 )
127 self.assertSequenceEqual( 128 self.assertSequenceEqual(
128 [element.Simple for element in item[1].List], 129 [element.Simple for element in item[1].List],
129 [[u'4', u'5', u'6'], [u'7', u'8', u'9']], 130 [[u'4', u'5', u'6'], [u'7', u'8', u'9']],
(...skipping 14 matching lines...) Expand all
144 145
145 text = """<Test6Response><Test6Result> 146 text = """<Test6Response><Test6Result>
146 <Item> 147 <Item>
147 <member><Value>One</Value></member> 148 <member><Value>One</Value></member>
148 <member><Value>Two</Value> 149 <member><Value>Two</Value>
149 <Error>Four</Error> 150 <Error>Four</Error>
150 </member> 151 </member>
151 <member><Value>Six</Value></member> 152 <member><Value>Six</Value></member>
152 </Item> 153 </Item>
153 </Test6Result></Test6Response>""" 154 </Test6Result></Test6Response>"""
154 obj = self.issue_test('Test6', Test6Result, text) 155 obj = self.check_issue(Test6Result, text)
155 self.assertSequenceEqual( 156 self.assertSequenceEqual(
156 [e.Value for e in obj._result.Item], 157 [e.Value for e in obj._result.Item],
157 ['One', 'Two', 'Six'], 158 ['One', 'Two', 'Six'],
158 ) 159 )
159 self.assertTrue(obj._result.Item[1].Error == 'Four') 160 self.assertTrue(obj._result.Item[1].Error == 'Four')
160 with self.assertRaises(AttributeError) as e: 161 with self.assertRaises(AttributeError) as e:
161 obj._result.Item[2].Error 162 obj._result.Item[2].Error
162 163
163 def test_parsing_empty_member_list(self): 164 def test_parsing_empty_member_list(self):
164 class Test5Result(ResponseElement): 165 class Test5Result(ResponseElement):
165 Item = MemberList(Nest=MemberList()) 166 Item = MemberList(Nest=MemberList())
166 167
167 text = """<Test5Response><Test5Result> 168 text = """<Test5Response><Test5Result>
168 <Item/> 169 <Item/>
169 </Test5Result></Test5Response>""" 170 </Test5Result></Test5Response>"""
170 obj = self.issue_test('Test5', Test5Result, text) 171 obj = self.check_issue(Test5Result, text)
171 self.assertSequenceEqual(obj._result.Item, []) 172 self.assertSequenceEqual(obj._result.Item, [])
172 173
173 def test_parsing_missing_member_list(self): 174 def test_parsing_missing_member_list(self):
174 class Test4Result(ResponseElement): 175 class Test4Result(ResponseElement):
175 Item = MemberList(NestedItem=MemberList()) 176 Item = MemberList(NestedItem=MemberList())
176 177
177 text = """<Test4Response><Test4Result> 178 text = """<Test4Response><Test4Result>
178 </Test4Result></Test4Response>""" 179 </Test4Result></Test4Response>"""
179 obj = self.issue_test('Test4', Test4Result, text) 180 obj = self.check_issue(Test4Result, text)
180 self.assertSequenceEqual(obj._result.Item, []) 181 self.assertSequenceEqual(obj._result.Item, [])
181 182
182 def test_parsing_element_lists(self): 183 def test_parsing_element_lists(self):
183 class Test1Result(ResponseElement): 184 class Test1Result(ResponseElement):
184 Item = ElementList() 185 Item = ElementList()
185 186
186 text = """<Test1Response><Test1Result> 187 text = """<Test1Response><Test1Result>
187 <Item><Foo>Bar</Foo></Item> 188 <Item><Foo>Bar</Foo></Item>
188 <Item><Zip>Bif</Zip></Item> 189 <Item><Zip>Bif</Zip></Item>
189 <Item><Foo>Baz</Foo> 190 <Item><Foo>Baz</Foo>
190 <Zam>Zoo</Zam></Item> 191 <Zam>Zoo</Zam></Item>
191 </Test1Result></Test1Response>""" 192 </Test1Result></Test1Response>"""
192 obj = self.issue_test('Test1', Test1Result, text) 193 obj = self.check_issue(Test1Result, text)
193 self.assertTrue(len(obj._result.Item) == 3) 194 self.assertTrue(len(obj._result.Item) == 3)
194 elements = lambda x: getattr(x, 'Foo', getattr(x, 'Zip', '?')) 195 elements = lambda x: getattr(x, 'Foo', getattr(x, 'Zip', '?'))
195 elements = map(elements, obj._result.Item) 196 elements = map(elements, obj._result.Item)
196 self.assertSequenceEqual(elements, ['Bar', 'Bif', 'Baz']) 197 self.assertSequenceEqual(elements, ['Bar', 'Bif', 'Baz'])
197 198
198 def test_parsing_missing_lists(self): 199 def test_parsing_missing_lists(self):
199 class Test2Result(ResponseElement): 200 class Test2Result(ResponseElement):
200 Item = ElementList() 201 Item = ElementList()
201 202
202 text = """<Test2Response><Test2Result> 203 text = """<Test2Response><Test2Result>
203 </Test2Result></Test2Response>""" 204 </Test2Result></Test2Response>"""
204 obj = self.issue_test('Test2', Test2Result, text) 205 obj = self.check_issue(Test2Result, text)
205 self.assertEqual(obj._result.Item, []) 206 self.assertEqual(obj._result.Item, [])
206 207
207 def test_parsing_simple_lists(self): 208 def test_parsing_simple_lists(self):
208 class Test3Result(ResponseElement): 209 class Test3Result(ResponseElement):
209 Item = SimpleList() 210 Item = SimpleList()
210 211
211 text = """<Test3Response><Test3Result> 212 text = """<Test3Response><Test3Result>
212 <Item>Bar</Item> 213 <Item>Bar</Item>
213 <Item>Bif</Item> 214 <Item>Bif</Item>
214 <Item>Baz</Item> 215 <Item>Baz</Item>
215 </Test3Result></Test3Response>""" 216 </Test3Result></Test3Response>"""
216 obj = self.issue_test('Test3', Test3Result, text) 217 obj = self.check_issue(Test3Result, text)
217 self.assertSequenceEqual(obj._result.Item, ['Bar', 'Bif', 'Baz']) 218 self.assertSequenceEqual(obj._result.Item, ['Bar', 'Bif', 'Baz'])
218 219
219 def issue_test(self, action, klass, text): 220 def check_issue(self, klass, text):
220 cls = ResponseFactory(action, force=klass) 221 action = klass.__name__[:-len('Result')]
221 return self.service_connection._parse_response(cls, text) 222 factory = ResponseFactory(scopes=[{klass.__name__: klass}])
223 parser = factory(action, connection=self.service_connection)
224 return self.service_connection._parse_response(parser, 'text/xml', text)
222 225
223 226
224 if __name__ == "__main__": 227 if __name__ == "__main__":
225 unittest.main() 228 unittest.main()
OLDNEW
« no previous file with comments | « third_party/boto/tests/unit/mws/test_connection.py ('k') | third_party/boto/tests/unit/provider/test_provider.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698