1-
21from foundations_spec import *
32from foundations .job_parameters import flatten_parameter_dictionary
43
5- class TestFlattenParameterDictionary (Spec ):
64
5+ class TestFlattenParameterDictionary (Spec ):
76 @let
87 def random_key (self ):
98 return self .faker .word ()
@@ -24,15 +23,20 @@ def random_literal_list_value(self):
2423
2524 @let
2625 def random_literal_dict_value (self ):
27- return {key : value for key , value in zip (self .random_literal_list (), self .random_literal_list ())}
26+ return {
27+ key : value
28+ for key , value in zip (
29+ self .random_literal_list (), self .random_literal_list ()
30+ )
31+ }
2832
2933 @let
3034 def random_length (self ):
3135 return self .faker .random_int (1 , 10 )
32-
36+
3337 @let
3438 def random_int (self ):
35- return self .faker .random_int (1 ,1000 )
39+ return self .faker .random_int (1 , 1000 )
3640
3741 @let
3842 def random_float (self ):
@@ -41,21 +45,31 @@ def random_float(self):
4145 def test_flatten_empty_dictionary_returns_empty_dictionary (self ):
4246 parameter_input = {}
4347 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
44-
48+
4549 self .assertEqual ({}, flattened_parameter_input )
4650
4751 def test_key_and_value_returns_key_and_value (self ):
4852 parameter_input = {self .random_key : self .random_string_literal }
4953 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
5054
51- self .assertEqual ({self .random_key : self .random_string_literal }, flattened_parameter_input )
55+ self .assertEqual (
56+ {self .random_key : self .random_string_literal }, flattened_parameter_input
57+ )
5258
53- def test_key_with_value_of_list_of_literals_returns_key_concatenated_with_list_index (self ):
59+ def test_key_with_value_of_list_of_literals_returns_key_concatenated_with_list_index (
60+ self ,
61+ ):
5462 parameter_input = {self .random_key : self .random_literal_list_value }
5563 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
5664
57- list_of_keys = map (lambda list_index : '{}_{}' .format (self .random_key , list_index ), range (self .random_length ))
58- expected_output = {key : value for key , value in zip (list_of_keys , self .random_literal_list_value )}
65+ list_of_keys = map (
66+ lambda list_index : f"{ self .random_key } _{ list_index } " ,
67+ range (self .random_length ),
68+ )
69+ expected_output = {
70+ key : value
71+ for key , value in zip (list_of_keys , self .random_literal_list_value )
72+ }
5973
6074 self .assertEqual (expected_output , flattened_parameter_input )
6175
@@ -69,8 +83,10 @@ def test_key_with_value_float_returns_key_and_value(self):
6983 parameter_input = {self .random_key : self .random_float }
7084 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
7185
72- self .assertEqual ({self .random_key : self .random_float }, flattened_parameter_input )
73-
86+ self .assertEqual (
87+ {self .random_key : self .random_float }, flattened_parameter_input
88+ )
89+
7490 def test_key_with_value_none_returns_key_and_value (self ):
7591 parameter_input = {self .random_key : None }
7692 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
@@ -89,49 +105,53 @@ def test_key_with_value_empty_list_turns_value_dict_into_none(self):
89105
90106 self .assertEqual ({self .random_key : None }, flattened_parameter_input )
91107
92- def test_key_with_value_of_dict_of_literals_returns_key_concatenated_with_nested_dict_keys (self ):
108+ def test_key_with_value_of_dict_of_literals_returns_key_concatenated_with_nested_dict_keys (
109+ self ,
110+ ):
93111 parameter_input = {self .random_key : self .random_literal_dict_value }
94112 flattened_parameter_input = flatten_parameter_dictionary (parameter_input )
95113
96- expected_output = {'{}_{}' .format (self .random_key , nested_key ): nested_value for nested_key , nested_value in self .random_literal_dict_value .items ()}
114+ expected_output = {
115+ f"{ self .random_key } _{ nested_key } " : nested_value
116+ for nested_key , nested_value in self .random_literal_dict_value .items ()
117+ }
97118 self .assertEqual (expected_output , flattened_parameter_input )
98119
99120 def test_multiple_keys_with_at_most_singly_nested_values (self ):
100- none_literal_key = self .faker .word ()
101- int_literal_key = self .faker .word ()
102- float_literal_key = self .faker .word ()
103- string_literal_key = self .faker .word ()
104- non_empty_dictionary_key = self .faker .word ()
105- non_empty_list_key = self .faker .word ()
106- empty_dictionary_key = self .faker .word ()
107- empty_list_key = self .faker .word ()
108-
109121 parameter_input = {
110- none_literal_key : None ,
111- int_literal_key : self .random_int ,
112- float_literal_key : self .random_float ,
113- string_literal_key : self .random_string_literal ,
114- empty_dictionary_key : {},
115- empty_list_key : [],
116- non_empty_list_key : self .random_literal_list_value ,
117- non_empty_dictionary_key : self .random_literal_dict_value
122+ " none_literal_key" : None ,
123+ " int_literal_key" : self .random_int ,
124+ " float_literal_key" : self .random_float ,
125+ " string_literal_key" : self .random_string_literal ,
126+ " empty_dictionary_key" : {},
127+ " empty_list_key" : [],
128+ " non_empty_list_key" : self .random_literal_list_value ,
129+ " non_empty_dictionary_key" : self .random_literal_dict_value ,
118130 }
119131
120132 expected_output = {
121- none_literal_key : None ,
122- int_literal_key : self .random_int ,
123- float_literal_key : self .random_float ,
124- string_literal_key : self .random_string_literal ,
125- empty_dictionary_key : None ,
126- empty_list_key : None
133+ " none_literal_key" : None ,
134+ " int_literal_key" : self .random_int ,
135+ " float_literal_key" : self .random_float ,
136+ " string_literal_key" : self .random_string_literal ,
137+ " empty_dictionary_key" : None ,
138+ " empty_list_key" : None ,
127139 }
128140
129- list_of_keys = map (lambda list_index : '{}_{}' .format (non_empty_list_key , list_index ), range (self .random_length ))
130- list_output = {key : value for key , value in zip (list_of_keys , self .random_literal_list_value )}
141+ list_of_keys = map (
142+ lambda list_index : f"non_empty_list_key_{ list_index } " ,
143+ range (self .random_length ),
144+ )
145+ list_output = {
146+ key : value
147+ for key , value in zip (list_of_keys , self .random_literal_list_value )
148+ }
131149
132150 expected_output .update (list_output )
133-
134- expected_dict_output = {'{}_{}' .format (non_empty_dictionary_key , nested_key ): nested_value for nested_key , nested_value in self .random_literal_dict_value .items ()}
151+ expected_dict_output = {
152+ f"non_empty_dictionary_key_{ nested_key } " : nested_value
153+ for nested_key , nested_value in self .random_literal_dict_value .items ()
154+ }
135155
136156 expected_output .update (expected_dict_output )
137157
@@ -140,29 +160,22 @@ def test_multiple_keys_with_at_most_singly_nested_values(self):
140160 def test_value_is_list_of_lists_flattens_correctly (self ):
141161 parameter_input = {self .random_key : [[0 , 1 ], [2 , 3 ]]}
142162 expected_output = {
143- self .random_key + ' _0_0' : 0 ,
144- self .random_key + ' _0_1' : 1 ,
145- self .random_key + ' _1_0' : 2 ,
146- self .random_key + ' _1_1' : 3
163+ self .random_key + " _0_0" : 0 ,
164+ self .random_key + " _0_1" : 1 ,
165+ self .random_key + " _1_0" : 2 ,
166+ self .random_key + " _1_1" : 3 ,
147167 }
148168
149169 self .assertEqual (expected_output , flatten_parameter_dictionary (parameter_input ))
150170
151171 def test_value_is_dict_of_dicts_flattens_correctly (self ):
152172 parameter_input = {
153- self .random_key : {
154- 'key_zero' : {
155- 'hello' : 'there'
156- },
157- 'key_one' : {
158- 'bye' : 'bye'
159- }
160- }
173+ self .random_key : {"key_zero" : {"hello" : "there" }, "key_one" : {"bye" : "bye" }}
161174 }
162-
175+
163176 expected_output = {
164- self .random_key + ' _key_zero_hello' : ' there' ,
165- self .random_key + ' _key_one_bye' : ' bye'
177+ self .random_key + " _key_zero_hello" : " there" ,
178+ self .random_key + " _key_one_bye" : " bye" ,
166179 }
167180
168- self .assertEqual (expected_output , flatten_parameter_dictionary (parameter_input ))
181+ self .assertEqual (expected_output , flatten_parameter_dictionary (parameter_input ))
0 commit comments