def test_get_fixed_files_empty(self):
        miner = BaseMiner(
            url_to_repo='https://github.com/stefanodallapalma/radon-repository-miner-testing.git',
            clone_repo_to=os.path.join(os.getcwd(), 'test_data', 'tmp')
        )

        miner.get_fixed_files()
        self.assertListEqual([], miner.fixed_files)
    def test_get_fixed_files_with_more_than_one_commits(self):
        """To test else branch in condition: if len(self.fixing_commits) == 1"""
        miner = BaseMiner(
            url_to_repo='https://github.com/stefanodallapalma/radon-repository-miner-testing.git',
            clone_repo_to=os.path.join(os.getcwd(), 'test_data', 'tmp')
        )

        miner.fixing_commits = ['3de3d8c2bbccf62ef5698cf33ad258aae5316432', 'c029d7520456e5468d66b56fe176146680520b20']
        miner.get_fixed_files()
        self.assertListEqual([], miner.fixed_files)
Esempio n. 3
0
def mine_fixed_files(miner: BaseMiner,
                     verbose: bool,
                     dest: str,
                     exclude_files: str = None):

    if exclude_files:
        with open(exclude_files, 'r') as f:
            files = json.load(f, cls=FixedFileDecoder)
            miner.exclude_fixed_files = files

    if verbose:
        language = 'Ansible' if isinstance(miner, AnsibleMiner) else 'Tosca'
        print(f'Identifying {language} files modified in fixing-commits')

    fixed_files = miner.get_fixed_files()

    if verbose:
        print(
            f'Saving {len(fixed_files)} fixed-files [{datetime.now().hour}:{datetime.now().minute}]'
        )

    filename_json = os.path.join(dest, 'fixed-files.json')
    json_files = []
    for file in fixed_files:
        json_files.append(FixedFileEncoder().default(file))

    with io.open(filename_json, "w") as f:
        json.dump(json_files, f)

    if verbose:
        print(f'JSON created at {filename_json}')