@@ -530,6 +530,41 @@ def test_time_to_ast(self):
530530 self .assertEqual ('DateTimeLiteral' , ast .body [0 ].assignment .init .type )
531531 self .assertEqual (literal [1 ], ast .body [0 ].assignment .init .value )
532532
533+ def test_csv_empty_lines (self ):
534+ query_response = '#datatype,string,long,dateTime:RFC3339,double,string\n ' \
535+ '#group,false,false,false,false,true\n ' \
536+ '#default,_result,,,,\n ' \
537+ ',result,table,_time,_value,_field\n ' \
538+ ',,0,2022-11-24T10:00:10Z,0.1,_1_current_(mA)\n ' \
539+ ',,1,2022-11-24T10:00:10Z,4,_1_current_limit_(mA)\n ' \
540+ ',,2,2022-11-24T10:00:10Z,1,_1_voltage_(V)\n ' \
541+ ',,3,2022-11-24T10:00:10Z,1,_1_voltage_limit_(V)\n ' \
542+ ',,4,2022-11-24T10:00:10Z,0,_2_current_(mA)\n ' \
543+ ',,5,2022-11-24T10:00:10Z,0,_2_current_limit_(mA)\n ' \
544+ ',,6,2022-11-24T10:00:10Z,0,_2_voltage_(V)\n ' \
545+ ',,7,2022-11-24T10:00:10Z,0,_2_voltage_limit_(V)\n ' \
546+ '\n ' \
547+ '\n ' \
548+ '#datatype,string,long,dateTime:RFC3339,string,string\n ' \
549+ '#group,false,false,false,false,true\n ' \
550+ '#default,_result,,,,\n ' \
551+ ',result,table,_time,_value,_field\n ' \
552+ ',,8,2022-11-24T10:00:10Z,K,type\n ' \
553+ ',,9,2022-11-24T10:00:10Z,,type2\n ' \
554+ '\n '
555+
556+ httpretty .register_uri (httpretty .POST , uri = "http://localhost/api/v2/query" , status = 200 , body = query_response )
557+
558+ self .client = InfluxDBClient ("http://localhost" , "my-token" , org = "my-org" , enable_gzip = False )
559+
560+ csv_lines = list (self .client .query_api ().query_csv ('from(bucket: "my-bucket")' , "my-org" ))
561+ self .assertEqual (18 , len (csv_lines ))
562+ for csv_line in csv_lines :
563+ self .assertEqual (6 , len (csv_line ))
564+
565+ # to_values
566+ csv_lines = self .client .query_api ().query_csv ('from(bucket: "my-bucket")' , "my-org" ).to_values ()
567+ self .assertEqual (18 , len (csv_lines ))
533568
534569if __name__ == '__main__' :
535570 unittest .main ()
0 commit comments