def setUpClass(cls):
        """Init the matcher"""
        cachedir = tempfile.mkdtemp()
        gitrepo = GitShallowRepo(cachedir=cachedir, repo=ComponentMatcher.REPO)
        gitrepo.update()

        cls.component_matcher = ComponentMatcher(email_cache={},
                                                 gitrepo=gitrepo)
    def setUpClass(cls):
        """Init the matcher"""
        cachedir = tempfile.mkdtemp()
        gitrepo = GitShallowRepo(cachedir=cachedir,
                                 repo='https://github.com/ansible/ansible')
        gitrepo.update()

        cls.component_matcher = ComponentMatcher(email_cache={},
                                                 gitrepo=gitrepo)
    def setUpClass(cls):
        """Init the matcher"""
        cachedir = tempfile.mkdtemp()
        gitrepo = GitShallowRepo(cachedir=cachedir, repo=ComponentMatcher.REPO)
        gitrepo.update()

        file_indexer = FileIndexer(gitrepo=gitrepo)
        file_indexer.get_files()
        file_indexer.parse_metadata()

        cls.component_matcher = ComponentMatcher(email_cache={}, gitrepo=gitrepo, file_indexer=file_indexer)
Example #4
0
    def setUpClass(cls):
        """Init the matcher"""
        cachedir = tempfile.mkdtemp()
        gitrepo = GitShallowRepo(cachedir=cachedir, repo=ComponentMatcher.REPO)
        gitrepo.update()

        @mock.patch.object(FileIndexer, 'manage_checkout')
        @mock.patch.object(FileIndexer,
                           'checkoutdir',
                           create=True,
                           side_effect=gitrepo.checkoutdir)
        def get_file_indexer(m_manage_checkout, m_checkoutdir):
            indexer = FileIndexer()
            indexer.get_files()
            indexer.parse_metadata()
            return indexer

        cls.component_matcher = ComponentMatcher(
            email_cache={}, gitrepo=gitrepo, file_indexer=get_file_indexer())
def get_component_matcher():

    # Make indexers
    MI = FakeIndexer()
    FI = FakeIndexer()
    GR = FakeGitRepo()

    GR.checkoutdir = tempfile.mkdtemp()

    if not os.path.isdir(GR.checkoutdir):
        os.makedirs(GR.checkoutdir)

    tarname = 'ansible-2017-10-24.tar.gz'
    tarurl = 'http://tannerjc.net/ansible/{}'.format(tarname)
    tarfile = 'tests/fixtures/{}'.format(tarname)
    tarfile = os.path.abspath(tarfile)

    if not os.path.isfile(tarfile):
        cmd = 'cd {}; wget {}'.format(os.path.dirname(tarfile), tarurl)
        (rc, so, se) = run_command(cmd)
        print(so)
        print(se)
        assert rc == 0

    cmd = 'cd {} ; tar xzvf {}'.format(GR.checkoutdir, tarfile)
    (rc, so, se) = run_command(cmd)
    GR.checkoutdir = GR.checkoutdir + '/ansible'

    # Load the files
    with open('tests/fixtures/filenames/2017-10-24.json', 'rb') as f:
        _files = json.loads(f.read())
    _files = sorted(set(_files))

    #with open('tests/fixtures/botmeta/BOTMETA-2017-11-01.yml', 'rb') as f:
    #    botmeta = f.read()
    botmetafile = 'tests/fixtures/botmeta/BOTMETA-2017-11-01.yml'

    FI.files = _files
    GR.files = _files
    #GR.module_files = [x for x in _files if x.startswith('lib/ansible/modules')]

    # Load the modules
    mfiles = [x for x in FI.files if 'lib/ansible/modules' in x]
    mfiles = [x for x in mfiles if x.endswith('.py') or x.endswith('.ps1')]
    mfiles = [x for x in mfiles if x != '__init__.py']
    mnames = []
    for mfile in mfiles:
        mname = os.path.basename(mfile)
        mname = mname.replace('.py', '')
        mname = mname.replace('.ps1', '')
        mnames.append(mname)
        MI.modules[mfile] = {'name': mname, 'repo_filename': mfile}

    # Init the matcher
    #CM = ComponentMatcher(None, FI, MI)

    CM = ComponentMatcher(botmetafile=botmetafile,
                          email_cache={},
                          gitrepo=GR,
                          file_indexer=FI,
                          module_indexer=MI)

    return CM