Skip to content

Commit 0270fc0

Browse files
committed
Added testing for and modified clean_dict
1 parent 6df334c commit 0270fc0

File tree

3 files changed

+30
-21
lines changed

3 files changed

+30
-21
lines changed

route4me/advanced_constraint.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,7 @@ def __init__(self):
2020
"lat": None,
2121
"lng": None,
2222
}
23-
self.location_sequence_pattern = [
24-
"",
25-
{
26-
"alias": None,
27-
"address": None,
28-
"lat": None,
29-
"lng": None,
30-
}
31-
]
32-
self.location_sequence_pattern = [
33-
"",
34-
{
35-
"alias": None,
36-
"address": None,
37-
"lat": None,
38-
"lng": None,
39-
}
40-
]
23+
self.location_sequence_pattern = []
4124
self.group = None
4225

4326
def to_dict(self):

route4me/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ def clean_dict(data):
3838
cleaned_list = []
3939
for i in data:
4040
cleaned_item = clean_dict(i)
41-
# Append non-None items
42-
if cleaned_item not in [None, ""]:
41+
# Append non-None items except empty strings
42+
if cleaned_item or cleaned_item == "":
4343
cleaned_list.append(cleaned_item)
4444
return cleaned_list if cleaned_list else None
4545
elif isinstance(data, dict):
4646
cleaned_dict = {}
4747
for k, v in data.items():
4848
cleaned_v = clean_dict(v)
4949
# Append non-None key-value pairs
50-
if cleaned_v not in [None, ""]:
50+
if cleaned_v:
5151
cleaned_dict[k] = cleaned_v
5252
return cleaned_dict if cleaned_dict else None
5353
else:

tests/test_utils.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import unittest
33

44
from route4me.utils import json2obj
5+
from route4me.utils import clean_dict
56
from tests.base import Route4MeAPITestSuite
67

78

@@ -15,6 +16,31 @@ def test_json2obj(self):
1516
json_obj = json2obj(json_data)
1617
self.assertTrue(hasattr(json_obj, 'variable1'))
1718

19+
def test_clean_dict(self):
20+
# None and "" values
21+
input_dict = {"key1": "value1", "key2": None, "key3": "", "key4": ["", None, "value4"]}
22+
cleaned_dict = clean_dict(input_dict)
23+
expected_dict = {"key1": "value1", "key4": ["", "value4"]}
24+
self.assertEqual(cleaned_dict, expected_dict)
25+
26+
# empty dict and list values
27+
input_dict = {"key1": "value1", "key2": {}, "key3": []}
28+
cleaned_dict = clean_dict(input_dict)
29+
expected_dict = {"key1": "value1"}
30+
self.assertEqual(cleaned_dict, expected_dict)
31+
32+
# None and "" values
33+
input_list = ["value1", None, "", ["", None, "value2"]]
34+
cleaned_list = clean_dict(input_list)
35+
expected_list = ["value1", "", ["", "value2"]]
36+
self.assertEqual(cleaned_list, expected_list)
37+
38+
# empty dict and list values
39+
input_list = ["value1", {}, []]
40+
cleaned_list = clean_dict(input_list)
41+
expected_list = ["value1"]
42+
self.assertEqual(cleaned_list, expected_list)
43+
1844

1945
if __name__ == '__main__':
2046
unittest.main()

0 commit comments

Comments
 (0)