Skip to content

Commit 860d868

Browse files
authored
Adding a unit test with the empty list case in KeyRange.to_pb(). (googleapis#4741)
Also reworked the `to_pb()` tests to just create a protobuf and just use one assertion.
1 parent 9cce518 commit 860d868

File tree

1 file changed

+46
-19
lines changed

1 file changed

+46
-19
lines changed

spanner/tests/unit/test_keyset.py

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -93,31 +93,58 @@ def test_ctor_w_start_closed_and_end_open(self):
9393
self.assertEqual(krange.end_closed, None)
9494

9595
def test_to_pb_w_start_closed_and_end_open(self):
96+
from google.protobuf.struct_pb2 import ListValue
97+
from google.protobuf.struct_pb2 import Value
9698
from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange
9799

98-
KEY_1 = [u'key_1']
99-
KEY_2 = [u'key_2']
100-
krange = self._make_one(start_closed=KEY_1, end_open=KEY_2)
101-
krange_pb = krange.to_pb()
102-
self.assertIsInstance(krange_pb, KeyRange)
103-
self.assertEqual(len(krange_pb.start_closed), 1)
104-
self.assertEqual(krange_pb.start_closed.values[0].string_value,
105-
KEY_1[0])
106-
self.assertEqual(len(krange_pb.end_open), 1)
107-
self.assertEqual(krange_pb.end_open.values[0].string_value, KEY_2[0])
100+
key1 = u'key_1'
101+
key2 = u'key_2'
102+
key_range = self._make_one(start_closed=[key1], end_open=[key2])
103+
key_range_pb = key_range.to_pb()
104+
expected = KeyRange(
105+
start_closed=ListValue(values=[
106+
Value(string_value=key1)
107+
]),
108+
end_open=ListValue(values=[
109+
Value(string_value=key2)
110+
]),
111+
)
112+
self.assertEqual(key_range_pb, expected)
108113

109114
def test_to_pb_w_start_open_and_end_closed(self):
115+
from google.protobuf.struct_pb2 import ListValue
116+
from google.protobuf.struct_pb2 import Value
110117
from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange
111118

112-
KEY_1 = [u'key_1']
113-
KEY_2 = [u'key_2']
114-
krange = self._make_one(start_open=KEY_1, end_closed=KEY_2)
115-
krange_pb = krange.to_pb()
116-
self.assertIsInstance(krange_pb, KeyRange)
117-
self.assertEqual(len(krange_pb.start_open), 1)
118-
self.assertEqual(krange_pb.start_open.values[0].string_value, KEY_1[0])
119-
self.assertEqual(len(krange_pb.end_closed), 1)
120-
self.assertEqual(krange_pb.end_closed.values[0].string_value, KEY_2[0])
119+
key1 = u'key_1'
120+
key2 = u'key_2'
121+
key_range = self._make_one(start_open=[key1], end_closed=[key2])
122+
key_range_pb = key_range.to_pb()
123+
expected = KeyRange(
124+
start_open=ListValue(values=[
125+
Value(string_value=key1)
126+
]),
127+
end_closed=ListValue(values=[
128+
Value(string_value=key2)
129+
]),
130+
)
131+
self.assertEqual(key_range_pb, expected)
132+
133+
def test_to_pb_w_empty_list(self):
134+
from google.protobuf.struct_pb2 import ListValue
135+
from google.protobuf.struct_pb2 import Value
136+
from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange
137+
138+
key = u'key'
139+
key_range = self._make_one(start_closed=[], end_closed=[key])
140+
key_range_pb = key_range.to_pb()
141+
expected = KeyRange(
142+
start_closed=ListValue(values=[]),
143+
end_closed=ListValue(values=[
144+
Value(string_value=key)
145+
]),
146+
)
147+
self.assertEqual(key_range_pb, expected)
121148

122149

123150
class TestKeySet(unittest.TestCase):

0 commit comments

Comments
 (0)