6
6
7
7
from redash import models
8
8
from redash .utils import utcnow , json_dumps
9
- from redash .serializers import serialize_query_result , serialize_query_result_to_csv
9
+ from redash .serializers import serialize_query_result , serialize_query_result_to_dsv
10
10
11
11
12
12
data = {
@@ -37,14 +37,14 @@ def test_doesnt_serialize_sensitive_keys_for_unauthenticated_users(self):
37
37
self .assertSetEqual (set (["data" , "retrieved_at" ]), set (serialized .keys ()))
38
38
39
39
40
- class CsvSerializationTest (BaseTestCase ):
41
- def get_csv_content (self ):
40
+ class DsvSerializationTest (BaseTestCase ):
41
+ def delimited_content (self , delimiter ):
42
42
query_result = self .factory .create_query_result (data = json_dumps (data ))
43
- return serialize_query_result_to_csv (query_result )
43
+ return serialize_query_result_to_dsv (query_result , delimiter )
44
44
45
45
def test_serializes_booleans_correctly (self ):
46
46
with self .app .test_request_context ("/" ):
47
- parsed = csv .DictReader (io .StringIO (self .get_csv_content ( )))
47
+ parsed = csv .DictReader (io .StringIO (self .delimited_content ( "," )))
48
48
rows = list (parsed )
49
49
50
50
self .assertEqual (rows [0 ]["bool" ], "true" )
@@ -53,7 +53,7 @@ def test_serializes_booleans_correctly(self):
53
53
54
54
def test_serializes_datatime_with_correct_format (self ):
55
55
with self .app .test_request_context ("/" ):
56
- parsed = csv .DictReader (io .StringIO (self .get_csv_content ( )))
56
+ parsed = csv .DictReader (io .StringIO (self .delimited_content ( "," )))
57
57
rows = list (parsed )
58
58
59
59
self .assertEqual (rows [0 ]["datetime" ], "26/05/19 12:39" )
@@ -65,8 +65,19 @@ def test_serializes_datatime_with_correct_format(self):
65
65
66
66
def test_serializes_datatime_as_is_in_case_of_error (self ):
67
67
with self .app .test_request_context ("/" ):
68
- parsed = csv .DictReader (io .StringIO (self .get_csv_content ( )))
68
+ parsed = csv .DictReader (io .StringIO (self .delimited_content ( "," )))
69
69
rows = list (parsed )
70
70
71
71
self .assertEqual (rows [3 ]["datetime" ], "459" )
72
72
self .assertEqual (rows [3 ]["date" ], "123" )
73
+
74
+ def test_serializes_tsv_format (self ):
75
+ delimiter = "\t "
76
+ with self .app .test_request_context ("/" ):
77
+ parsed = csv .DictReader (io .StringIO (self .delimited_content (delimiter )), delimiter = delimiter )
78
+ rows = list (parsed )
79
+
80
+ self .assertEqual (rows [0 ]["datetime" ], "26/05/19 12:39" )
81
+ self .assertEqual (rows [1 ]["bool" ], "false" )
82
+ self .assertEqual (rows [2 ]["date" ], "" )
83
+ self .assertEqual (rows [3 ]["datetime" ], "459" )
0 commit comments