def test_access_optional_bool(self): frozen = self._freeze(test_pb2.Scalar(string_value='test')) self.assertFalse(hasattr(frozen, 'bool_value')) with self.assertRaises(AttributeError): _ = frozen.bool_value frozen = self._freeze(test_pb2.Scalar(bool_value=False)) self.assertTrue(hasattr(frozen, 'bool_value')) self.assertFalse(frozen.bool_value) frozen = self._freeze(test_pb2.Scalar(bool_value=True)) self.assertTrue(hasattr(frozen, 'bool_value')) self.assertTrue(frozen.bool_value)
def setUp(self): super().setUp() self.messages = [ test_pb2.Scalar(int32_value=3, float_value=4.5), test_pb2.RepeatedScalar(values=[1.2, 3.4]), test_pb2.Enum(value='FIRST'), test_pb2.RepeatedEnum(values=['FIRST', 'SECOND']), test_pb2.Nested(child=test_pb2.Nested.Child(value=1.2)), ]
def test_scalar(self): message = test_pb2.Scalar(int32_value=1, int64_value=2, float_value=3.4, string_value='five', bytes_value=b'six') record = proto_to_json.get_database_json(message) # NOTE(kearnes): Using individual tests here to avoid introducing a # dependency on pandas for assert_series_equal. self.assertLen(record, 5) self.assertEqual(record['int32_value'], 1) self.assertEqual(record['int64_value'], 2) self.assertAlmostEqual(record['float_value'], 3.4, places=3) self.assertEqual(record['string_value'], 'five') # Note that bytes values are converted to base64 and then decoded. self.assertEqual(record['bytes_value'], 'c2l4') self.assertEqual( base64.b64decode(record['bytes_value'].encode('utf-8')), b'six')
def test_scalar(self): message = test_pb2.Scalar(int32_value=5, float_value=6.7) self.assertEmpty( message_helpers.find_submessages(message, test_pb2.Scalar)) with self.assertRaisesRegex(TypeError, 'must be a Protocol Buffer'): message_helpers.find_submessages(message, float)
def test_set_bool_value(self): frozen = self._freeze(test_pb2.Scalar()) with self.assertRaises(dataclasses.FrozenInstanceError): frozen.bool_value = False