Skip to content

Commit 7f47f20

Browse files
committed
Flaky tests - string encoding
1 parent 8cd8c57 commit 7f47f20

File tree

1 file changed

+105
-102
lines changed

1 file changed

+105
-102
lines changed

onadata/libs/tests/utils/test_export_builder.py

Lines changed: 105 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -618,12 +618,12 @@ def test_zipped_sav_export_with_date_field(self):
618618
with SavReader(os.path.join(temp_dir, "exp.sav"), returnHeader=True) as reader:
619619
rows = list(reader)
620620
self.assertTrue(len(rows) > 1)
621-
self.assertEqual(rows[0][0], b"expense_date")
622-
self.assertEqual(rows[1][0], b"2013-01-03")
623-
self.assertEqual(rows[0][1], b"A.gdate")
624-
self.assertEqual(rows[1][1], b"2017-06-13")
625-
self.assertEqual(rows[0][5], b"@_submission_time")
626-
self.assertEqual(rows[1][5], b"2016-11-21 03:43:43")
621+
self.assertEqual(_str_if_bytes(rows[0][0]), "expense_date")
622+
self.assertEqual(_str_if_bytes(rows[1][0]), "2013-01-03")
623+
self.assertEqual(_str_if_bytes(rows[0][1]), "A.gdate")
624+
self.assertEqual(_str_if_bytes(rows[1][1]), "2017-06-13")
625+
self.assertEqual(_str_if_bytes(rows[0][5]), "@_submission_time")
626+
self.assertEqual(_str_if_bytes(rows[1][5]), "2016-11-21 03:43:43")
627627

628628
shutil.rmtree(temp_dir)
629629

@@ -670,24 +670,26 @@ def test_zipped_sav_export_dynamic_select_multiple(self):
670670

671671
with SavReader(os.path.join(temp_dir, "exp.sav"), returnHeader=True) as reader:
672672
rows = list(reader)
673+
rows[0] = list(map(_str_if_bytes, rows[0]))
674+
rows[1] = list(map(_str_if_bytes, rows[1]))
673675
self.assertTrue(len(rows) > 1)
674-
self.assertEqual(rows[0][0], b"sex")
675-
self.assertEqual(rows[1][0], b"male")
676-
self.assertEqual(rows[0][1], b"text")
677-
self.assertEqual(rows[1][1], b"his")
678-
self.assertEqual(rows[0][2], b"favorite_brand")
679-
self.assertEqual(rows[1][2], b"Generic")
680-
self.assertEqual(rows[0][3], b"name")
681-
self.assertEqual(rows[1][3], b"Davis")
682-
self.assertEqual(rows[0][4], b"brand_known")
683-
self.assertEqual(rows[1][4], b"his Generic a")
684-
self.assertEqual(rows[0][5], b"brand_known.$text")
676+
self.assertEqual(rows[0][0], "sex")
677+
self.assertEqual(rows[1][0], "male")
678+
self.assertEqual(rows[0][1], "text")
679+
self.assertEqual(rows[1][1], "his")
680+
self.assertEqual(rows[0][2], "favorite_brand")
681+
self.assertEqual(rows[1][2], "Generic")
682+
self.assertEqual(rows[0][3], "name")
683+
self.assertEqual(rows[1][3], "Davis")
684+
self.assertEqual(rows[0][4], "brand_known")
685+
self.assertEqual(rows[1][4], "his Generic a")
686+
self.assertEqual(rows[0][5], "brand_known.$text")
685687
self.assertEqual(rows[1][5], 1.0)
686-
self.assertEqual(rows[0][6], b"brand_known.$favorite_brand")
688+
self.assertEqual(rows[0][6], "brand_known.$favorite_brand")
687689
self.assertEqual(rows[1][6], 1.0)
688-
self.assertEqual(rows[0][7], b"brand_known.a")
690+
self.assertEqual(rows[0][7], "brand_known.a")
689691
self.assertEqual(rows[1][7], 1.0)
690-
self.assertEqual(rows[0][8], b"brand_known.b")
692+
self.assertEqual(rows[0][8], "brand_known.b")
691693
self.assertEqual(rows[1][8], 0.0)
692694

693695
shutil.rmtree(temp_dir)
@@ -764,16 +766,16 @@ def test_zipped_sav_export_with_numeric_select_one_field(self):
764766
self.assertTrue(len(rows) > 1)
765767

766768
# expensed 1
767-
self.assertEqual(rows[0][0], b"expensed")
768-
self.assertEqual(rows[1][0], 1)
769+
self.assertEqual(_str_if_bytes(rows[0][0]), "expensed")
770+
self.assertEqual(_str_if_bytes(rows[1][0]), 1)
769771

770772
# A/q1 1
771-
self.assertEqual(rows[0][1], b"A.q1")
773+
self.assertEqual(_str_if_bytes(rows[0][1]), "A.q1")
772774
self.assertEqual(rows[1][1], 1)
773775

774776
# _submission_time is a date string
775-
self.assertEqual(rows[0][5], b"@_submission_time")
776-
self.assertEqual(rows[1][5], b"2016-11-21 03:43:43")
777+
self.assertEqual(_str_if_bytes(rows[0][5]), "@_submission_time")
778+
self.assertEqual(_str_if_bytes(rows[1][5]), "2016-11-21 03:43:43")
777779

778780
# pylint: disable=invalid-name
779781
def test_zipped_sav_export_with_duplicate_field_different_groups(self):
@@ -956,35 +958,35 @@ def test_zipped_sav_export_with_numeric_select_multiple_field(self):
956958
rows = list(reader)
957959
self.assertTrue(len(rows) > 1)
958960

959-
self.assertEqual(rows[0][0], b"expensed")
960-
self.assertEqual(rows[1][0], b"1")
961+
self.assertEqual(_str_if_bytes(rows[0][0]), "expensed")
962+
self.assertEqual(_str_if_bytes(rows[1][0]), "1")
961963

962964
# expensed.1 is selected hence True, 1.00 or 1 in SPSS
963-
self.assertEqual(rows[0][1], b"expensed.1")
965+
self.assertEqual(_str_if_bytes(rows[0][1]), "expensed.1")
964966
self.assertEqual(rows[1][1], 1)
965967

966968
# expensed.0 is not selected hence False, .00 or 0 in SPSS
967-
self.assertEqual(rows[0][2], b"expensed.0")
969+
self.assertEqual(_str_if_bytes(rows[0][2]), "expensed.0")
968970
self.assertEqual(rows[1][2], 0)
969971

970-
self.assertEqual(rows[0][3], b"A.q1")
971-
self.assertEqual(rows[1][3], b"1")
972+
self.assertEqual(_str_if_bytes(rows[0][3]), "A.q1")
973+
self.assertEqual(_str_if_bytes(rows[1][3]), "1")
972974

973975
# ensure you get a numeric value for multiple select with choice
974976
# filters
975-
self.assertEqual(rows[0][6], b"A.q2")
976-
self.assertEqual(rows[1][6], b"1")
977+
self.assertEqual(_str_if_bytes(rows[0][6]), "A.q2")
978+
self.assertEqual(_str_if_bytes(rows[1][6]), "1")
977979

978980
# expensed.1 is selected hence True, 1.00 or 1 in SPSS
979-
self.assertEqual(rows[0][4], b"A.q1.1")
981+
self.assertEqual(_str_if_bytes(rows[0][4]), "A.q1.1")
980982
self.assertEqual(rows[1][4], 1)
981983

982984
# expensed.0 is not selected hence False, .00 or 0 in SPSS
983-
self.assertEqual(rows[0][5], b"A.q1.0")
985+
self.assertEqual(_str_if_bytes(rows[0][5]), "A.q1.0")
984986
self.assertEqual(rows[1][5], 0)
985987

986-
self.assertEqual(rows[0][12], b"@_submission_time")
987-
self.assertEqual(rows[1][12], b"2016-11-21 03:43:43")
988+
self.assertEqual(_str_if_bytes(rows[0][12]), "@_submission_time")
989+
self.assertEqual(_str_if_bytes(rows[1][12]), "2016-11-21 03:43:43")
988990

989991
shutil.rmtree(temp_dir)
990992

@@ -1170,10 +1172,10 @@ def test_zipped_sav_export_with_duplicate_column_name(self):
11701172
rows = list(reader)
11711173

11721174
# Check that columns are present
1173-
self.assertIn(b"Sport", rows[0])
1175+
self.assertIn("Sport", _str_if_bytes(rows[0]))
11741176
# Check for sport in first 5 characters
11751177
# because rows contains 'sport@d4b6'
1176-
self.assertIn(b"sport", [x[0:5] for x in rows[0]])
1178+
self.assertIn("sport", list(map(_str_if_bytes, [x[0:5] for x in rows[0]])))
11771179

11781180
# pylint: disable=invalid-name
11791181
def test_xlsx_export_works_with_unicode(self):
@@ -3044,46 +3046,45 @@ def test_zipped_sav_export_with_osm_data(self):
30443046
with SavReader(os.path.join(temp_dir, "osm.sav"), returnHeader=True) as reader:
30453047
rows = list(reader)
30463048
expected_column_headers = [
3047-
x.encode("8")
3048-
for x in [
3049-
"photo",
3050-
"osm_road",
3051-
"osm_building",
3052-
"fav_color",
3053-
"form_completed",
3054-
"meta.instanceID",
3055-
"@_id",
3056-
"@_uuid",
3057-
"@_submission_time",
3058-
"@_index",
3059-
"@_parent_table_name",
3060-
"@_parent_index",
3061-
"@_tags",
3062-
"@_notes",
3063-
"@_version",
3064-
"@_duration",
3065-
"@_submitted_by",
3066-
"osm_road_ctr_lat",
3067-
"osm_road_ctr_lon",
3068-
"osm_road_highway",
3069-
"osm_road_lanes",
3070-
"osm_road_name",
3071-
"osm_road_way_id",
3072-
"osm_building_building",
3073-
"osm_building_building_levels",
3074-
"osm_building_ctr_lat",
3075-
"osm_building_ctr_lon",
3076-
"osm_building_name",
3077-
"osm_building_way_id",
3078-
]
3049+
"photo",
3050+
"osm_road",
3051+
"osm_building",
3052+
"fav_color",
3053+
"form_completed",
3054+
"meta.instanceID",
3055+
"@_id",
3056+
"@_uuid",
3057+
"@_submission_time",
3058+
"@_index",
3059+
"@_parent_table_name",
3060+
"@_parent_index",
3061+
"@_tags",
3062+
"@_notes",
3063+
"@_version",
3064+
"@_duration",
3065+
"@_submitted_by",
3066+
"osm_road_ctr_lat",
3067+
"osm_road_ctr_lon",
3068+
"osm_road_highway",
3069+
"osm_road_lanes",
3070+
"osm_road_name",
3071+
"osm_road_way_id",
3072+
"osm_building_building",
3073+
"osm_building_building_levels",
3074+
"osm_building_ctr_lat",
3075+
"osm_building_ctr_lon",
3076+
"osm_building_name",
3077+
"osm_building_way_id",
30793078
]
3079+
rows[0] = list(map(_str_if_bytes, rows[0]))
3080+
rows[1] = list(map(_str_if_bytes, rows[1]))
30803081
self.assertEqual(sorted(rows[0]), sorted(expected_column_headers))
3081-
self.assertEqual(rows[1][0], b"1424308569120.jpg")
3082-
self.assertEqual(rows[1][1], b"OSMWay234134797.osm")
3083-
self.assertEqual(rows[1][2], b"23.708174238006087")
3084-
self.assertEqual(rows[1][4], b"tertiary")
3085-
self.assertEqual(rows[1][6], b"Patuatuli Road")
3086-
self.assertEqual(rows[1][13], b"kol")
3082+
self.assertEqual(rows[1][0], "1424308569120.jpg")
3083+
self.assertEqual(rows[1][1], "OSMWay234134797.osm")
3084+
self.assertEqual(rows[1][2], "23.708174238006087")
3085+
self.assertEqual(rows[1][4], "tertiary")
3086+
self.assertEqual(rows[1][6], "Patuatuli Road")
3087+
self.assertEqual(rows[1][13], "kol")
30873088

30883089
def test_show_choice_labels(self):
30893090
"""
@@ -3610,44 +3611,44 @@ def test_sav_export_with_duplicate_metadata(self, mock_uuid):
36103611

36113612
expected_data = [
36123613
[
3613-
b"gps",
3614-
b"@_gps_latitude",
3615-
b"@_gps_longitude",
3616-
b"@_gps_altitude",
3617-
b"@_gps_precision",
3618-
b"gps@52a9",
3619-
b"@_gps_latitude_52a9",
3620-
b"@_gps_longitude_52a9",
3621-
b"@_gps_altitude_52a9",
3622-
b"@_gps_precision_52a9",
3623-
b"instanceID",
3624-
b"@_id",
3625-
b"@_uuid",
3626-
b"@_submission_time",
3627-
b"@_index",
3628-
b"@_parent_table_name",
3629-
b"@_parent_index",
3630-
b"@_tags",
3631-
b"@_notes",
3632-
b"@_version",
3633-
b"@_duration",
3634-
b"@_submitted_by",
3614+
"gps",
3615+
"@_gps_latitude",
3616+
"@_gps_longitude",
3617+
"@_gps_altitude",
3618+
"@_gps_precision",
3619+
"gps@52a9",
3620+
"@_gps_latitude_52a9",
3621+
"@_gps_longitude_52a9",
3622+
"@_gps_altitude_52a9",
3623+
"@_gps_precision_52a9",
3624+
"instanceID",
3625+
"@_id",
3626+
"@_uuid",
3627+
"@_submission_time",
3628+
"@_index",
3629+
"@_parent_table_name",
3630+
"@_parent_index",
3631+
"@_tags",
3632+
"@_notes",
3633+
"@_version",
3634+
"@_duration",
3635+
"@_submitted_by",
36353636
],
36363637
[
3637-
b"4.0 36.1 5000 20",
3638+
"4.0 36.1 5000 20",
36383639
4.0,
36393640
36.1,
36403641
5000.0,
36413642
20.0,
3642-
b"1.0 36.1 2000 20",
3643+
"1.0 36.1 2000 20",
36433644
1.0,
36443645
36.1,
36453646
2000.0,
36463647
20.0,
36473648
"",
36483649
None,
36493650
"",
3650-
b"2016-11-21 03:42:43",
3651+
"2016-11-21 03:42:43",
36513652
1.0,
36523653
"",
36533654
-1.0,
@@ -3663,5 +3664,7 @@ def test_sav_export_with_duplicate_metadata(self, mock_uuid):
36633664
) as reader:
36643665
rows = list(reader)
36653666
self.assertEqual(len(rows), 2)
3667+
rows[0] = list(map(_str_if_bytes, rows[0]))
3668+
rows[1] = list(map(_str_if_bytes, rows[1]))
36663669
self.assertEqual(expected_data, rows)
36673670
shutil.rmtree(temp_dir)

0 commit comments

Comments
 (0)