@@ -154,6 +154,115 @@ def test_3306(self):
154154 bytes_val = str_val .encode ()
155155 self .__verify_doc (doc , bytes_val , str_val , val )
156156
157+ def test_3307 (self ):
158+ "3307 - test creating documents with int scalar value"
159+ soda_db = self .conn .getSodaDatabase ()
160+ val = 144
161+ str_val = "144"
162+ bytes_val = b"144"
163+ key = "MyKey"
164+ media_type = "application/json"
165+ doc = soda_db .createDocument (val )
166+ self .__verify_doc (doc , bytes_val , str_val , val )
167+ doc = soda_db .createDocument (val , key )
168+ self .__verify_doc (doc , bytes_val , str_val , val , key )
169+ doc = soda_db .createDocument (val , key , media_type )
170+ self .__verify_doc (doc , bytes_val , str_val , val , key , media_type )
171+
172+ @unittest .skipIf (
173+ test_env .get_client_version () < (23 , 4 )
174+ and test_env .get_server_version () < (23 , 4 ),
175+ "data types serialized differently" ,
176+ )
177+ def test_3308 (self ):
178+ "3308 - test creating documents with float scalar value"
179+ soda_db = self .conn .getSodaDatabase ()
180+ val = 12.2
181+ str_val = "12.2"
182+ bytes_val = b"12.2"
183+ decimal_val = decimal .Decimal (str_val )
184+ key = "MyKey"
185+ media_type = "application/json"
186+ doc = soda_db .createDocument (val )
187+ self .__verify_doc (doc , bytes_val , str_val , decimal_val )
188+ doc = soda_db .createDocument (val , key )
189+ self .__verify_doc (doc , bytes_val , str_val , decimal_val , key )
190+ doc = soda_db .createDocument (val , key , media_type )
191+ self .__verify_doc (
192+ doc , bytes_val , str_val , decimal_val , key , media_type
193+ )
194+
195+ @unittest .skipIf (
196+ test_env .get_client_version () < (23 , 4 )
197+ and test_env .get_server_version () < (23 , 4 ),
198+ "unsupported data types" ,
199+ )
200+ def test_3309 (self ):
201+ "3309 - test creating documents with a list"
202+ soda_db = self .conn .getSodaDatabase ()
203+ val = [12 , "str" , b"bytes" , [1 ], {"dict" : "3" }]
204+ decimal_val = [
205+ decimal .Decimal ("12" ),
206+ "str" ,
207+ b"bytes" ,
208+ [decimal .Decimal ("1" )],
209+ {"dict" : "3" },
210+ ]
211+ str_val = (
212+ "[Decimal('12'), 'str', b'bytes', [Decimal('1')], {'dict': '3'}]"
213+ )
214+ bytes_val = (
215+ b"[Decimal('12'), 'str', b'bytes', [Decimal('1')], {'dict': '3'}]"
216+ )
217+ key = "MyKey"
218+ media_type = "application/json"
219+ doc = soda_db .createDocument (val )
220+ self .__verify_doc (doc , bytes_val , str_val , decimal_val )
221+ doc = soda_db .createDocument (val , key )
222+ self .__verify_doc (doc , bytes_val , str_val , decimal_val , key )
223+ doc = soda_db .createDocument (val , key , media_type )
224+ self .__verify_doc (
225+ doc , bytes_val , str_val , decimal_val , key , media_type
226+ )
227+
228+ @unittest .skipIf (
229+ test_env .get_client_version () < (23 , 4 )
230+ and test_env .get_server_version () < (23 , 4 ),
231+ "data types serialized differently" ,
232+ )
233+ def test_3310 (self ):
234+ "3310 - test creating documents with a boolean scalar value"
235+ soda_db = self .conn .getSodaDatabase ()
236+ test_values = [(True , "True" , b"True" ), (False , "False" , b"False" )]
237+ key = "MyKey"
238+ media_type = "application/json"
239+ for val , str_val , bytes_val in test_values :
240+ doc = soda_db .createDocument (val )
241+ self .__verify_doc (doc , bytes_val , str_val , val )
242+ doc = soda_db .createDocument (val , key )
243+ self .__verify_doc (doc , bytes_val , str_val , val , key )
244+ doc = soda_db .createDocument (val , key , media_type )
245+ self .__verify_doc (doc , bytes_val , str_val , val , key , media_type )
246+
247+ @unittest .skipIf (
248+ test_env .get_client_version () < (23 , 4 )
249+ and test_env .get_server_version () < (23 , 4 ),
250+ "data types serialized differently" ,
251+ )
252+ def test_3311 (self ):
253+ "3311 - test creating documents with unsupported types"
254+ soda_db = self .conn .getSodaDatabase ()
255+ values = [
256+ tuple ([144 , 2 ]),
257+ set ("144" ),
258+ bytearray ("omg" , "utf-8" ),
259+ complex (2j ),
260+ range (4 ),
261+ ]
262+ for value in values :
263+ with self .assertRaisesFullCode ("DPY-3003" ):
264+ soda_db .createDocument (value )
265+
157266
158267if __name__ == "__main__" :
159268 test_env .run_test_cases ()
0 commit comments