Index: tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/extra_types_test.py |
diff --git a/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/extra_types_test.py b/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/extra_types_test.py |
deleted file mode 100644 |
index d2fd5b07b06398e092ad81b1f4749d24afceb389..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/extra_types_test.py |
+++ /dev/null |
@@ -1,174 +0,0 @@ |
-import datetime |
-import json |
-import math |
- |
-from protorpc import messages |
-import unittest2 |
- |
-from apitools.base.py import encoding |
-from apitools.base.py import exceptions |
-from apitools.base.py import extra_types |
- |
- |
-class ExtraTypesTest(unittest2.TestCase): |
- |
- def assertRoundTrip(self, value): |
- if isinstance(value, extra_types._JSON_PROTO_TYPES): |
- self.assertEqual( |
- value, |
- extra_types._PythonValueToJsonProto( |
- extra_types._JsonProtoToPythonValue(value))) |
- else: |
- self.assertEqual( |
- value, |
- extra_types._JsonProtoToPythonValue( |
- extra_types._PythonValueToJsonProto(value))) |
- |
- def assertTranslations(self, py_value, json_proto): |
- self.assertEqual( |
- py_value, extra_types._JsonProtoToPythonValue(json_proto)) |
- self.assertEqual( |
- json_proto, extra_types._PythonValueToJsonProto(py_value)) |
- |
- def testInvalidProtos(self): |
- with self.assertRaises(exceptions.InvalidDataError): |
- extra_types._ValidateJsonValue(extra_types.JsonValue()) |
- with self.assertRaises(exceptions.InvalidDataError): |
- extra_types._ValidateJsonValue( |
- extra_types.JsonValue(is_null=True, string_value='a')) |
- with self.assertRaises(exceptions.InvalidDataError): |
- extra_types._ValidateJsonValue( |
- extra_types.JsonValue(integer_value=3, string_value='a')) |
- |
- def testNullEncoding(self): |
- self.assertTranslations(None, extra_types.JsonValue(is_null=True)) |
- |
- def testJsonNumberEncoding(self): |
- seventeen = extra_types.JsonValue(integer_value=17) |
- self.assertRoundTrip(17) |
- self.assertRoundTrip(seventeen) |
- self.assertTranslations(17, seventeen) |
- |
- json_pi = extra_types.JsonValue(double_value=math.pi) |
- self.assertRoundTrip(math.pi) |
- self.assertRoundTrip(json_pi) |
- self.assertTranslations(math.pi, json_pi) |
- |
- def testArrayEncoding(self): |
- array = [3, 'four', False] |
- json_array = extra_types.JsonArray(entries=[ |
- extra_types.JsonValue(integer_value=3), |
- extra_types.JsonValue(string_value='four'), |
- extra_types.JsonValue(boolean_value=False), |
- ]) |
- self.assertRoundTrip(array) |
- self.assertRoundTrip(json_array) |
- self.assertTranslations(array, json_array) |
- |
- def testArrayAsValue(self): |
- array_json = '[3, "four", false]' |
- array = [3, 'four', False] |
- value = encoding.JsonToMessage(extra_types.JsonValue, array_json) |
- self.assertTrue(isinstance(value, extra_types.JsonValue)) |
- self.assertEqual(array, encoding.MessageToPyValue(value)) |
- |
- def testObjectAsValue(self): |
- obj_json = '{"works": true}' |
- obj = {'works': True} |
- value = encoding.JsonToMessage(extra_types.JsonValue, obj_json) |
- self.assertTrue(isinstance(value, extra_types.JsonValue)) |
- self.assertEqual(obj, encoding.MessageToPyValue(value)) |
- |
- def testDictEncoding(self): |
- d = {'a': 6, 'b': 'eleventeen'} |
- json_d = extra_types.JsonObject(properties=[ |
- extra_types.JsonObject.Property( |
- key='a', value=extra_types.JsonValue(integer_value=6)), |
- extra_types.JsonObject.Property( |
- key='b', |
- value=extra_types.JsonValue(string_value='eleventeen')), |
- ]) |
- self.assertRoundTrip(d) |
- # We don't know json_d will round-trip, because of randomness in |
- # python dictionary iteration ordering. We also need to force |
- # comparison as lists, since hashing protos isn't helpful. |
- translated_properties = extra_types._PythonValueToJsonProto( |
- d).properties |
- for p in json_d.properties: |
- self.assertIn(p, translated_properties) |
- for p in translated_properties: |
- self.assertIn(p, json_d.properties) |
- |
- def testJsonObjectPropertyTranslation(self): |
- value = extra_types.JsonValue(string_value='abc') |
- obj = extra_types.JsonObject(properties=[ |
- extra_types.JsonObject.Property(key='attr_name', value=value)]) |
- json_value = '"abc"' |
- json_obj = '{"attr_name": "abc"}' |
- |
- self.assertRoundTrip(value) |
- self.assertRoundTrip(obj) |
- self.assertRoundTrip(json_value) |
- self.assertRoundTrip(json_obj) |
- |
- self.assertEqual(json_value, encoding.MessageToJson(value)) |
- self.assertEqual(json_obj, encoding.MessageToJson(obj)) |
- |
- def testDateField(self): |
- |
- class DateMsg(messages.Message): |
- start_date = extra_types.DateField(1) |
- all_dates = extra_types.DateField(2, repeated=True) |
- |
- msg = DateMsg( |
- start_date=datetime.date(1752, 9, 9), all_dates=[ |
- datetime.date(1979, 5, 6), |
- datetime.date(1980, 10, 24), |
- datetime.date(1981, 1, 19), |
- ]) |
- msg_dict = { |
- 'start_date': '1752-09-09', |
- 'all_dates': ['1979-05-06', '1980-10-24', '1981-01-19'], |
- } |
- self.assertEqual(msg_dict, json.loads(encoding.MessageToJson(msg))) |
- self.assertEqual( |
- msg, encoding.JsonToMessage(DateMsg, json.dumps(msg_dict))) |
- |
- def testInt64(self): |
- # Testing roundtrip of type 'long' |
- |
- class DogeMsg(messages.Message): |
- such_string = messages.StringField(1) |
- wow = messages.IntegerField(2, variant=messages.Variant.INT64) |
- very_unsigned = messages.IntegerField( |
- 3, variant=messages.Variant.UINT64) |
- much_repeated = messages.IntegerField( |
- 4, variant=messages.Variant.INT64, repeated=True) |
- |
- def MtoJ(msg): |
- return encoding.MessageToJson(msg) |
- |
- def JtoM(class_type, json_str): |
- return encoding.JsonToMessage(class_type, json_str) |
- |
- def DoRoundtrip(class_type, json_msg=None, message=None, times=4): |
- if json_msg: |
- json_msg = MtoJ(JtoM(class_type, json_msg)) |
- if message: |
- message = JtoM(class_type, MtoJ(message)) |
- if times == 0: |
- result = json_msg if json_msg else message |
- return result |
- return DoRoundtrip(class_type=class_type, json_msg=json_msg, |
- message=message, times=times - 1) |
- |
- # Single |
- json_msg = ('{"such_string": "poot", "wow": "-1234", ' |
- '"very_unsigned": "999", "much_repeated": ["123", "456"]}') |
- out_json = MtoJ(JtoM(DogeMsg, json_msg)) |
- self.assertEqual(json.loads(out_json)['wow'], '-1234') |
- |
- # Repeated test case |
- msg = DogeMsg(such_string='wow', wow=-1234, |
- very_unsigned=800, much_repeated=[123, 456]) |
- self.assertEqual(msg, DoRoundtrip(DogeMsg, message=msg)) |