Beispiel #1
0
    def test_get_process_metrics(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        metrics = me.get_process_metrics(
            from_commit='d39fdb44e98869835fe59a86d20d05a9e82d5282',
            to_commit='c029d7520456e5468d66b56fe176146680520b20')

        self.assertIn('dict_change_set_max', metrics)
        self.assertIn('dict_change_set_avg', metrics)
        self.assertIn('dict_code_churn_count', metrics)
        self.assertIn('dict_code_churn_max', metrics)
        self.assertIn('dict_code_churn_avg', metrics)
        self.assertIn('dict_commits_count', metrics)
        self.assertIn('dict_contributors_count', metrics)
        self.assertIn('dict_minor_contributors_count', metrics)
        self.assertIn('dict_highest_contributor_experience', metrics)
        self.assertIn('dict_hunks_median', metrics)
        self.assertIn('dict_additions', metrics)
        self.assertIn('dict_additions_max', metrics)
        self.assertIn('dict_additions_avg', metrics)
        self.assertIn('dict_deletions', metrics)
        self.assertIn('dict_deletions_max', metrics)
        self.assertIn('dict_deletions_avg', metrics)
Beispiel #2
0
    def test_ignore_file__abstract(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        self.assertFalse(me.ignore_file(path_to_file='fake/path/to/file.txt'))
Beispiel #3
0
    def test_get_product_metrics__abstract(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        self.assertDictEqual(me.get_product_metrics(script=''), {})
Beispiel #4
0
    def test_to_csv(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        me.to_csv(os.path.join(self.path_to_tmp_dir, 'test_to.cvs'))
        self.assertIn('test_to.cvs', os.listdir(self.path_to_tmp_dir))
Beispiel #5
0
    def test_get_files(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        self.assertEqual(
            me.get_files(),
            {'LICENSE', 'README.md', 'test_is_comment_changed-renamed.py'})
Beispiel #6
0
 def test_init_ValueError_3(self):
     with self.assertRaises(ValueError):
         BaseMetricsExtractor(
             path_to_repo=
             'https://bitbucket.com/stefanodallapalma/radon-repository-miner-testing',
             clone_repo_to=self.path_to_tmp_dir,
             at='release')
Beispiel #7
0
 def test_init_ValueError_2(self):
     with self.assertRaises(ValueError):
         BaseMetricsExtractor(
             path_to_repo=
             'https://github.com/stefanodallapalma/radon-repository-miner-testing',
             clone_repo_to=None,
             at='release')
Beispiel #8
0
    def test_extract_at_commit(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='commit')

        me.extract([], product=False, process=False, delta=False)
        self.assertEqual(me.dataset.shape, (18, 4))
        commits = list(me.dataset.commit.unique())
        self.assertIn('3de3d8c2bbccf62ef5698cf33ad258aae5316432', commits)
        self.assertIn('fa91aedc17a7dfb08a60f189c86a9d86dac72b41', commits)
        self.assertIn('ea49aab402a7cb64e9382e764f202d9e6c8f4cbe', commits)
        self.assertIn('c029d7520456e5468d66b56fe176146680520b20', commits)
        self.assertIn('d39fdb44e98869835fe59a86d20d05a9e82d5282', commits)
        self.assertIn('75da5889425815009cc0eb4bdff68f59024d351f', commits)
        self.assertIn('f494eac8c6e7acad5bdc6acf32c6b40b1a11c926', commits)
Beispiel #9
0
    def test_commits_at_release(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        self.assertEqual(me.commits_at, [
            'd39fdb44e98869835fe59a86d20d05a9e82d5282',
            '75da5889425815009cc0eb4bdff68f59024d351f',
            'f494eac8c6e7acad5bdc6acf32c6b40b1a11c926'
        ])
Beispiel #10
0
    def test_commits_at_commit(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='commit')

        self.assertEqual(me.commits_at, [
            '3de3d8c2bbccf62ef5698cf33ad258aae5316432',
            'fa91aedc17a7dfb08a60f189c86a9d86dac72b41',
            'ea49aab402a7cb64e9382e764f202d9e6c8f4cbe',
            'c029d7520456e5468d66b56fe176146680520b20',
            'd39fdb44e98869835fe59a86d20d05a9e82d5282',
            '75da5889425815009cc0eb4bdff68f59024d351f',
            'f494eac8c6e7acad5bdc6acf32c6b40b1a11c926'
        ])
Beispiel #11
0
    def test_extract_at_release(self):
        me = BaseMetricsExtractor(
            path_to_repo=
            'https://github.com/stefanodallapalma/radon-repository-miner-testing',
            clone_repo_to=self.path_to_tmp_dir,
            at='release')

        labeled_files = [
            FailureProneFile(
                filepath='test_is_comment_changed.py',
                commit='c029d7520456e5468d66b56fe176146680520b20',
                fixing_commit='d39fdb44e98869835fe59a86d20d05a9e82d5282')
        ]

        me.extract(labeled_files, product=True, process=False, delta=False)
        self.assertEqual(me.dataset.shape, (9, 4))

        me.extract(labeled_files, product=False, process=True, delta=False)
        self.assertEqual(me.dataset.shape, (9, 20))

        me.extract(labeled_files, product=False, process=False, delta=True)
        self.assertEqual(me.dataset.shape, (9, 4))

        me.extract(labeled_files, product=True, process=False, delta=True)
        self.assertEqual(me.dataset.shape, (9, 4))

        me.extract(labeled_files, product=False, process=True, delta=True)
        self.assertEqual(me.dataset.shape, (9, 36))

        labeled_files = [
            FailureProneFile(
                filepath='test_is_comment_changed.py',
                commit='d39fdb44e98869835fe59a86d20d05a9e82d5282',
                fixing_commit='75da5889425815009cc0eb4bdff68f59024d351f')
        ]

        me.extract(labeled_files, product=True, process=False, delta=False)
        self.assertEqual(me.dataset.shape, (9, 4))
        self.assertEqual(me.dataset.failure_prone.to_list().count(0), 8)
        self.assertEqual(me.dataset.failure_prone.to_list().count(1), 1)