add method to filter relevant fields, unit test
This commit is contained in:
		| @@ -1,3 +1,6 @@ | ||||
| # gitlab-api-ci-finder (glcifinder) | ||||
|  | ||||
|  | ||||
| ## How to run | ||||
| `python glcifinder-cli.py --count 1000 --projectid 244 --jobname deploy-test` | ||||
|  | ||||
|   | ||||
| @@ -44,6 +44,17 @@ def calc_number_of_pages_number(total_number): | ||||
|         return MAX_NUMBER_OF_ITEMS_PER_PAGE, round(total_number / MAX_NUMBER_OF_ITEMS_PER_PAGE) | ||||
|  | ||||
|  | ||||
| def filter_relevant_attributes(job): | ||||
|     relevant_job = { | ||||
|         'status': job['status'], | ||||
|         'name': job['name'], | ||||
|         'ref': job['ref'], | ||||
|         'started_at': job['started_at'], | ||||
|         'commit_id': job['commit']['id'] | ||||
|     } | ||||
|     return relevant_job | ||||
|  | ||||
|  | ||||
| def find_jobs(count, project_id, job_name): | ||||
|     number_of_items_per_page, number_of_pages = calc_number_of_pages_number(count) | ||||
|     # NUMBER_OF_ITEMS_PER_PAGE = 100 | ||||
| @@ -69,5 +80,6 @@ def find_jobs(count, project_id, job_name): | ||||
|     import itertools | ||||
|  | ||||
|     flat_list_of_jobs = list(itertools.chain(*response_array)) | ||||
|     find_jobs_by_name_that_were_run(flat_list_of_jobs, job_name) | ||||
|     # TODO filter output for relevant fields | ||||
|     list_of_successfull_jobs = find_jobs_by_name_that_were_run(flat_list_of_jobs, job_name) | ||||
|     # filter output for relevant fields | ||||
|     return list(map(filter_relevant_attributes, list_of_successfull_jobs)) | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import gitlab_api_finder | ||||
| @click.option("--count", default=1, help="Number of jobs to search.") | ||||
| @click.option("--projectid", prompt="Id of Gitlab Project", help="Id of Gitlab Project.") | ||||
| @click.option("--jobname", prompt="name of job to filter", help="Id of Gitlab Project.") | ||||
| # TODO add option "to-file" for storing the resulting json on disk | ||||
| def hello(count, projectid, jobname): | ||||
|     gitlab_api_finder.find_jobs(count, projectid, jobname) | ||||
|  | ||||
|   | ||||
							
								
								
									
										10
									
								
								test_glcifinder.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test_glcifinder.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| import gitlab_api_finder | ||||
|  | ||||
|  | ||||
| def test(): | ||||
|     count = 20 | ||||
|     projectid = 244 | ||||
|     jobname = "prepare" | ||||
|     result = gitlab_api_finder.find_jobs(count, projectid, jobname) | ||||
|     one_job = result[0] | ||||
|     assert one_job['status'] == 'success' | ||||
		Reference in New Issue
	
	Block a user