def test_to_repr_non_supported_type(): class NonSupportedType: pass value = Value(NonSupportedType()) with pytest.raises(Exception) as ex_info: value.to_repr() assert NonSupportedType.__name__ in ex_info.value.args[0]
def test_make_mutation_from_value_object(key): value = Value(30, exclude_from_indexes=True) properties = {'value': value} results = Datastore.make_mutation(Operation.INSERT, key, properties) assert results['insert']['properties']['value'] == value.to_repr()
def test_to_repr(v, expected_json_key): value = Value(v) r = value.to_repr() assert len(r) == 2 # Value + excludeFromIndexes assert r['excludeFromIndexes'] is False assert r[str(expected_json_key)] == v
def test_to_repr_with_datetime_value(): dt = datetime(year=2018, month=7, day=15, hour=11, minute=22, second=33, microsecond=456789) value = Value(dt) r = value.to_repr() assert r['timestampValue'] == '2018-07-15T11:22:33.456789000Z'
def test_to_repr_exclude_from_indexes(): value = Value(123, exclude_from_indexes=True) r = value.to_repr() assert r['excludeFromIndexes']
def test_to_repr_with_geo_point_value(lat_lng): value = Value(lat_lng) r = value.to_repr() assert r['geoPointValue'] == lat_lng.to_repr()
def test_to_repr_with_key_value(key): value = Value(key) r = value.to_repr() assert r['keyValue'] == key.to_repr()
def test_to_repr_with_null_value(): value = Value(None) r = value.to_repr() assert r['nullValue'] == 'NULL_VALUE'
def test_to_repr_with_blob_value(): value = Value(b'foobar') r = value.to_repr() assert r['blobValue'] == 'Zm9vYmFy'