@@ -30,49 +30,47 @@ def test_ctor_no_start_no_end(self):
3030 with self .assertRaises (ValueError ):
3131 self ._make_one ()
3232
33- def test_ctor_w_start_open_and_start_closed (self ):
33+ def test_ctor_start_open_and_start_closed (self ):
3434 KEY_1 = [u'key_1' ]
3535 KEY_2 = [u'key_2' ]
3636 with self .assertRaises (ValueError ):
3737 self ._make_one (start_open = KEY_1 , start_closed = KEY_2 )
3838
39- def test_ctor_w_end_open_and_end_closed (self ):
39+ def test_ctor_end_open_and_end_closed (self ):
4040 KEY_1 = [u'key_1' ]
4141 KEY_2 = [u'key_2' ]
4242 with self .assertRaises (ValueError ):
4343 self ._make_one (end_open = KEY_1 , end_closed = KEY_2 )
4444
45- def test_ctor_w_only_start_open (self ):
45+ def test_ctor_conflicting_start (self ):
4646 KEY_1 = [u'key_1' ]
47- krange = self ._make_one (start_open = KEY_1 )
48- self .assertEqual (krange .start_open , KEY_1 )
49- self .assertEqual (krange .start_closed , None )
50- self .assertEqual (krange .end_open , None )
51- self .assertEqual (krange .end_closed , None )
47+ with self .assertRaises (ValueError ):
48+ self ._make_one (start_open = [], start_closed = [], end_closed = KEY_1 )
5249
53- def test_ctor_w_only_start_closed (self ):
50+ def test_ctor_conflicting_end (self ):
5451 KEY_1 = [u'key_1' ]
55- krange = self ._make_one (start_closed = KEY_1 )
56- self .assertEqual (krange .start_open , None )
57- self .assertEqual (krange .start_closed , KEY_1 )
58- self .assertEqual (krange .end_open , None )
59- self .assertEqual (krange .end_closed , None )
52+ with self .assertRaises (ValueError ):
53+ self ._make_one (start_open = KEY_1 , end_open = [], end_closed = [])
6054
61- def test_ctor_w_only_end_open (self ):
55+ def test_ctor_single_key_start_closed (self ):
6256 KEY_1 = [u'key_1' ]
63- krange = self ._make_one (end_open = KEY_1 )
64- self .assertEqual (krange .start_open , None )
65- self .assertEqual (krange .start_closed , None )
66- self .assertEqual (krange .end_open , KEY_1 )
67- self .assertEqual (krange .end_closed , None )
57+ with self .assertRaises (ValueError ):
58+ self ._make_one (start_closed = KEY_1 )
6859
69- def test_ctor_w_only_end_closed (self ):
60+ def test_ctor_single_key_start_open (self ):
7061 KEY_1 = [u'key_1' ]
71- krange = self ._make_one (end_closed = KEY_1 )
72- self .assertEqual (krange .start_open , None )
73- self .assertEqual (krange .start_closed , None )
74- self .assertEqual (krange .end_open , None )
75- self .assertEqual (krange .end_closed , KEY_1 )
62+ with self .assertRaises (ValueError ):
63+ self ._make_one (start_open = KEY_1 )
64+
65+ def test_ctor_single_key_end_closed (self ):
66+ KEY_1 = [u'key_1' ]
67+ with self .assertRaises (ValueError ):
68+ self ._make_one (end_closed = KEY_1 )
69+
70+ def test_ctor_single_key_end_open (self ):
71+ KEY_1 = [u'key_1' ]
72+ with self .assertRaises (ValueError ):
73+ self ._make_one (end_open = KEY_1 )
7674
7775 def test_ctor_w_start_open_and_end_closed (self ):
7876 KEY_1 = [u'key_1' ]
@@ -93,31 +91,58 @@ def test_ctor_w_start_closed_and_end_open(self):
9391 self .assertEqual (krange .end_closed , None )
9492
9593 def test_to_pb_w_start_closed_and_end_open (self ):
94+ from google .protobuf .struct_pb2 import ListValue
95+ from google .protobuf .struct_pb2 import Value
9696 from google .cloud .spanner_v1 .proto .keys_pb2 import KeyRange
9797
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 ])
98+ key1 = u'key_1'
99+ key2 = u'key_2'
100+ key_range = self ._make_one (start_closed = [key1 ], end_open = [key2 ])
101+ key_range_pb = key_range .to_pb ()
102+ expected = KeyRange (
103+ start_closed = ListValue (values = [
104+ Value (string_value = key1 )
105+ ]),
106+ end_open = ListValue (values = [
107+ Value (string_value = key2 )
108+ ]),
109+ )
110+ self .assertEqual (key_range_pb , expected )
108111
109112 def test_to_pb_w_start_open_and_end_closed (self ):
113+ from google .protobuf .struct_pb2 import ListValue
114+ from google .protobuf .struct_pb2 import Value
110115 from google .cloud .spanner_v1 .proto .keys_pb2 import KeyRange
111116
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 ])
117+ key1 = u'key_1'
118+ key2 = u'key_2'
119+ key_range = self ._make_one (start_open = [key1 ], end_closed = [key2 ])
120+ key_range_pb = key_range .to_pb ()
121+ expected = KeyRange (
122+ start_open = ListValue (values = [
123+ Value (string_value = key1 )
124+ ]),
125+ end_closed = ListValue (values = [
126+ Value (string_value = key2 )
127+ ]),
128+ )
129+ self .assertEqual (key_range_pb , expected )
130+
131+ def test_to_pb_w_empty_list (self ):
132+ from google .protobuf .struct_pb2 import ListValue
133+ from google .protobuf .struct_pb2 import Value
134+ from google .cloud .spanner_v1 .proto .keys_pb2 import KeyRange
135+
136+ key = u'key'
137+ key_range = self ._make_one (start_closed = [], end_closed = [key ])
138+ key_range_pb = key_range .to_pb ()
139+ expected = KeyRange (
140+ start_closed = ListValue (values = []),
141+ end_closed = ListValue (values = [
142+ Value (string_value = key )
143+ ]),
144+ )
145+ self .assertEqual (key_range_pb , expected )
121146
122147
123148class TestKeySet (unittest .TestCase ):
0 commit comments