def get_job_statuses(github_token, api_url, build_id,
                     polling_interval, job_number):
    """Wait for all the travis jobs to complete.

    Once the other jobs are complete, return a list of booleans,
    indicating whether or not the job was successful. Ignore jobs
    marked "allow_failure".
    """
    auth = get_json('{api_url}/auth/github'.format(api_url=api_url),
                    data={'github_token': github_token})['access_token']

    while True:
        build = get_json('{api_url}/builds/{build_id}'.format(
            api_url=api_url, build_id=build_id), auth=auth)
        jobs = [job for job in build['jobs']
                if job['number'] != job_number and
                not job['allow_failure']]  # Ignore allowed failures
        if all(job['finished_at'] for job in jobs):
            break  # All the jobs have completed
        elif any(job['state'] != 'passed'
                 for job in jobs if job['finished_at']):
            break  # Some required job that finished did not pass

        print('Waiting for jobs to complete: {job_numbers}'.format(
            job_numbers=[job['number'] for job in jobs
                         if not job['finished_at']]))
        time.sleep(polling_interval)

    return [job['state'] == 'passed' for job in jobs]
def get_job_statuses ( github_token , api_url , build_id , polling_interval , job_number ) : auth = get_json ( '{api_url}/auth/github' . format ( api_url = api_url ) , data = { 'github_token' : github_token } ) [ 'access_token' ] while True : build = get_json ( '{api_url}/builds/{build_id}' . format ( api_url = api_url , build_id = build_id ) , auth = auth ) jobs = [ job for job in build [ 'jobs' ] if job [ 'number' ] != job_number and not job [ 'allow_failure' ] ] if all ( job [ 'finished_at' ] for job in jobs ) : break elif any ( job [ 'state' ] != 'passed' for job in jobs if job [ 'finished_at' ] ) : break print ( 'Waiting for jobs to complete: {job_numbers}' . format ( job_numbers = [ job [ 'number' ] for job in jobs if not job [ 'finished_at' ] ] ) ) time . sleep ( polling_interval ) return [ job [ 'state' ] == 'passed' for job in jobs ]
Wait for all the travis jobs to complete.

    Once the other jobs are complete, return a list of booleans,
    indicating whether or not the job was successful. Ignore jobs
    marked "allow_failure".