Esempio n. 1
0
 def test_empty(self):
     target = Target()
     assert target.user is None
     assert target.project is None
     assert target.build_id is None
     assert target.job_id is None
     assert target.build_number is None
     assert target.job_number is None
Esempio n. 2
0
def _select_repo_builds(targets, slug):
    """Filter targets for one repo."""
    targets = [target for target in targets if target.slug == slug]
    build_numbers = set(target.build_number for target in targets
                        if isinstance(target, Target))
    builds = [
        Target(slug=slug, build_number=build_number)
        for build_number in build_numbers
    ]
    return builds
Esempio n. 3
0
def get_stored_targets(base_dir, log_filename_format=None):
    """Get parsed stored targets."""
    assert log_filename_format
    if '{job.state}' in log_filename_format:
        log_filename_format = log_filename_format.replace(
            '{job.state}', '{job.state:w}')

    if '{job.number}' in log_filename_format:
        log_filename_format = log_filename_format.replace(
            '{job.number}', '{job.number:f}')

    parser = parse.compile(log_filename_format)

    if base_dir[-1] != '/':
        base_dir = base_dir + '/'

    filenames = get_files(base_dir)

    targets = []
    for filename in filenames:
        parsed_filename = parser.parse(filename)
        if not parsed_filename:
            __logs__.warning('Unexpected filename {0}'.format(filename))
            continue
        target = Target()
        try:
            target.slug = parsed_filename['job.repository.slug']
        except KeyError:
            pass
        try:
            target.number = str(parsed_filename['job.number'])
        except KeyError:
            pass
        try:
            target.state = parsed_filename['job.state']
        except KeyError:
            pass

        targets.append(target)

    return targets