def test_to_pb_w_only_ranges(self): from google.cloud.spanner_v1 import KeyRangePB from google.cloud.spanner_v1 import KeySetPB from google.cloud.spanner_v1.keyset import KeyRange KEY_1 = "KEY_1" KEY_2 = "KEY_2" KEY_3 = "KEY_3" KEY_4 = "KEY_4" RANGES = [ KeyRange(start_open=KEY_1, end_closed=KEY_2), KeyRange(start_closed=KEY_3, end_open=KEY_4), ] keyset = self._make_one(ranges=RANGES) result = keyset._to_pb() self.assertIsInstance(result, KeySetPB) self.assertFalse(result.all_) self.assertEqual(len(result.keys), 0) self.assertEqual(len(result.ranges), len(RANGES)) expected_ranges = [ KeyRangePB(start_open=KEY_1, end_closed=KEY_2), KeyRangePB(start_closed=KEY_3, end_open=KEY_4), ] for found, expected in zip(result.ranges, expected_ranges): self.assertEqual(found, expected)
def test_from_dict_w_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange klass = self._get_target_class() key_1 = u"KEY_1" key_2 = u"KEY_2" key_3 = u"KEY_3" key_4 = u"KEY_4" mapping = { "ranges": [ { "start_open": [key_1], "end_closed": [key_2] }, { "start_closed": [key_3], "end_open": [key_4] }, ] } keyset = klass._from_dict(mapping) range_1 = KeyRange(start_open=[key_1], end_closed=[key_2]) range_2 = KeyRange(start_closed=[key_3], end_open=[key_4]) self.assertFalse(keyset.all_) self.assertEqual(keyset.keys, []) self.assertEqual(keyset.ranges, [range_1, range_2])
def test_to_dict_w_only_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange key_1 = u"KEY_1" key_2 = u"KEY_2" key_3 = u"KEY_3" key_4 = u"KEY_4" ranges = [ KeyRange(start_open=[key_1], end_closed=[key_2]), KeyRange(start_closed=[key_3], end_open=[key_4]), ] keyset = self._make_one(ranges=ranges) expected = { "keys": [], "ranges": [ { "start_open": [key_1], "end_closed": [key_2] }, { "start_closed": [key_3], "end_open": [key_4] }, ], } self.assertEqual(keyset._to_dict(), expected)
def test_ctor_w_all_and_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) with self.assertRaises(ValueError): self._make_one(all_=True, ranges=[range_1, range_2])
def test___eq___w_ranges_miss(self): from google.cloud.spanner_v1.keyset import KeyRange range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) keyset = self._make_one(ranges=[range_1]) other = self._make_one(ranges=[range_2]) self.assertNotEqual(keyset, other)
def test___eq___w_ranges_hit(self): from google.cloud.spanner_v1.keyset import KeyRange range_1 = KeyRange(start_closed=["key1"], end_open=["key3"]) range_2 = KeyRange(start_open=["key5"], end_closed=["key6"]) keyset = self._make_one(ranges=[range_1, range_2]) other = self._make_one(ranges=[range_1, range_2]) self.assertEqual(keyset, other)
def test_ctor_w_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) keyset = self._make_one(ranges=[range_1, range_2]) self.assertFalse(keyset.all_) self.assertEqual(keyset.keys, []) self.assertEqual(keyset.ranges, [range_1, range_2])
def test_to_dict_w_only_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange key_1 = u'KEY_1' key_2 = u'KEY_2' key_3 = u'KEY_3' key_4 = u'KEY_4' ranges = [ KeyRange(start_open=[key_1], end_closed=[key_2]), KeyRange(start_closed=[key_3], end_open=[key_4]), ] keyset = self._make_one(ranges=ranges) expected = { 'keys': [], 'ranges': [ {'start_open': [key_1], 'end_closed': [key_2]}, {'start_closed': [key_3], 'end_open': [key_4]}, ] } self.assertEqual(keyset._to_dict(), expected)
def test_to_pb_w_empty_list(self): from google.protobuf.struct_pb2 import ListValue from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange key = u'key' key_range = self._make_one(start_closed=[], end_closed=[key]) key_range_pb = key_range._to_pb() expected = KeyRange( start_closed=ListValue(values=[]), end_closed=ListValue(values=[Value(string_value=key)]), ) self.assertEqual(key_range_pb, expected)
def test_to_pb_w_start_closed_and_end_open(self): from google.protobuf.struct_pb2 import ListValue from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange key1 = u'key_1' key2 = u'key_2' key_range = self._make_one(start_closed=[key1], end_open=[key2]) key_range_pb = key_range._to_pb() expected = KeyRange( start_closed=ListValue(values=[Value(string_value=key1)]), end_open=ListValue(values=[Value(string_value=key2)]), ) self.assertEqual(key_range_pb, expected)
def test_to_pb_w_only_ranges(self): from google.cloud.spanner_v1.proto.keys_pb2 import KeySet from google.cloud.spanner_v1.keyset import KeyRange KEY_1 = u'KEY_1' KEY_2 = u'KEY_2' KEY_3 = u'KEY_3' KEY_4 = u'KEY_4' RANGES = [ KeyRange(start_open=KEY_1, end_closed=KEY_2), KeyRange(start_closed=KEY_3, end_open=KEY_4), ] keyset = self._make_one(ranges=RANGES) result = keyset._to_pb() self.assertIsInstance(result, KeySet) self.assertFalse(result.all) self.assertEqual(len(result.keys), 0) self.assertEqual(len(result.ranges), len(RANGES)) for found, expected in zip(result.ranges, RANGES): self.assertEqual(found, expected._to_pb())
def test_from_dict_w_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange klass = self._get_target_class() key_1 = u'KEY_1' key_2 = u'KEY_2' key_3 = u'KEY_3' key_4 = u'KEY_4' mapping = { 'ranges': [ {'start_open': [key_1], 'end_closed': [key_2]}, {'start_closed': [key_3], 'end_open': [key_4]}, ], } keyset = klass._from_dict(mapping) range_1 = KeyRange(start_open=[key_1], end_closed=[key_2]) range_2 = KeyRange(start_closed=[key_3], end_open=[key_4]) self.assertFalse(keyset.all_) self.assertEqual(keyset.keys, []) self.assertEqual(keyset.ranges, [range_1, range_2])