@@ -122,83 +122,76 @@ def get_project_data(self, project_name: str, project_id: int = None) -> Project
122
122
error_message = error ,
123
123
)
124
124
125
- def check_suite_id (self , project_id : int ) -> ( bool , str ) :
125
+ def check_suite_id (self , project_id : int ) -> Tuple [ bool , str ] :
126
126
"""
127
127
Check if suite from DataProvider exist using get_suites endpoint
128
128
:project_id: project id
129
129
:returns: True if exists in suites. False if not.
130
130
"""
131
131
suite_id = self .suites_data_from_provider .suite_id
132
- response = self .client .send_get (f"get_suites/{ project_id } " )
133
- if not response .error_message :
134
- try :
135
- parsed = json .loads (response .response_text ) if isinstance (response .response_text , str ) else response .response_text
136
- suite_list = parsed .get ("suites" ) if isinstance (parsed , dict ) else parsed
137
- available_suites = [suite ["id" ] for suite in suite_list ]
138
- return (
139
- (True , "" )
140
- if suite_id in available_suites
141
- else (False , FAULT_MAPPING ["missing_suite" ].format (suite_id = suite_id ))
142
- )
143
- except Exception as e :
144
- return None , f"Error parsing suites response: { e } "
132
+ suites_data , error = self .__get_all_suites (project_id )
133
+ if not error :
134
+ available_suites = [
135
+ suite
136
+ for suite in suites_data
137
+ if suite ["id" ] == suite_id
138
+ ]
139
+ return (
140
+ (True , "" )
141
+ if len (available_suites ) > 0
142
+ else (False , FAULT_MAPPING ["missing_suite" ].format (suite_id = suite_id ))
143
+ )
145
144
else :
146
- return None , response .error_message
145
+ return None , suites_data .error_message
147
146
148
147
def resolve_suite_id_using_name (self , project_id : int ) -> Tuple [int , str ]:
149
148
"""Get suite ID matching suite name on data provider or returns -1 if unable to match any suite.
150
149
:arg project_id: project id
151
150
:returns: tuple with id of the suite and error message"""
152
151
suite_id = - 1
153
- error_message = ""
154
- response = self .client .send_get (f"get_suites/{ project_id } " )
155
- if not response .error_message :
156
- try :
157
- parsed = json .loads (response .response_text ) if isinstance (response .response_text , str ) else response .response_text
158
- suite_list = parsed .get ("suites" ) if isinstance (parsed , dict ) else parsed
159
- suite = next (
160
- filter (lambda x : x ["name" ] == self .suites_data_from_provider .name , suite_list ),
161
- None
162
- )
163
- if suite :
152
+ suite_name = self .suites_data_from_provider .name
153
+ suites_data , error = self .__get_all_suites (project_id )
154
+ if not error :
155
+ for suite in suites_data :
156
+ if suite ["name" ] == suite_name :
164
157
suite_id = suite ["id" ]
165
158
self .data_provider .update_data ([{"suite_id" : suite ["id" ], "name" : suite ["name" ]}])
166
- except Exception as e :
167
- error_message = f"Error parsing suites response: { e } "
159
+ break
160
+ return (
161
+ (suite_id , "" )
162
+ if suite_id != - 1
163
+ else (- 1 , FAULT_MAPPING ["missing_suite" ].format (suite_name = suite_name ))
164
+ )
168
165
else :
169
- error_message = response .error_message
170
-
171
- return suite_id , error_message
166
+ return - 1 , error
172
167
173
168
def get_suite_ids (self , project_id : int ) -> Tuple [List [int ], str ]:
174
169
"""Get suite IDs for requested project_id.
175
170
: project_id: project id
176
171
: returns: tuple with list of suite ids and error string"""
177
172
available_suites = []
178
173
returned_resources = []
179
- error_message = ""
180
- response = self .client .send_get (f"get_suites/{ project_id } " )
181
- if not response .error_message :
182
- try :
183
- parsed = json .loads (response .response_text ) if isinstance (response .response_text , str ) else response .response_text
184
- suite_list = parsed .get ("suites" ) if isinstance (parsed , dict ) else parsed
185
- for suite in suite_list :
186
- available_suites .append (int (suite ["id" ]))
187
- returned_resources .append ({
174
+ suites_data , error = self .__get_all_suites (project_id )
175
+ if not error :
176
+ for suite in suites_data :
177
+ available_suites .append (suite ["id" ])
178
+ returned_resources .append (
179
+ {
188
180
"suite_id" : suite ["id" ],
189
181
"name" : suite ["name" ],
190
- })
191
- except Exception as e :
192
- error_message = f"Error parsing suites response: { e } "
193
- else :
194
- error_message = response .error_message
195
-
196
- if returned_resources :
197
- self .data_provider .update_data (suite_data = returned_resources )
182
+ }
183
+ )
184
+ if returned_resources :
185
+ self .data_provider .update_data (suite_data = returned_resources )
186
+ else :
187
+ print ("Update skipped" )
188
+ return (
189
+ (available_suites , "" )
190
+ if len (available_suites ) > 0
191
+ else ([], FAULT_MAPPING ["no_suites_found" ].format (project_id = project_id ))
192
+ )
198
193
else :
199
- print ("Update skipped" )
200
-
201
- return available_suites , error_message
194
+ return [], error
202
195
203
196
def add_suites (self , project_id : int ) -> Tuple [List [Dict ], str ]:
204
197
"""
@@ -707,10 +700,16 @@ def __get_all_tests_in_run(self, run_id=None) -> Tuple[List[dict], str]:
707
700
708
701
def __get_all_projects (self ) -> Tuple [List [dict ], str ]:
709
702
"""
710
- Get all cases from all pages
703
+ Get all projects from all pages
711
704
"""
712
705
return self .__get_all_entities ('projects' , f"get_projects" )
713
706
707
+ def __get_all_suites (self , project_id ) -> Tuple [List [dict ], str ]:
708
+ """
709
+ Get all suites from all pages
710
+ """
711
+ return self .__get_all_entities ('suites' , f"get_suites/{ project_id } " )
712
+
714
713
def __get_all_entities (self , entity : str , link = None , entities = []) -> Tuple [List [Dict ], str ]:
715
714
"""
716
715
Get all entities from all pages if number of entities is too big to return in single response.
0 commit comments