class TestMcCabeMetric(unittest.TestCase):

    def setUp(self):
        self.p = None
        self.p = Parser()
        self._metric = McCabeMetric()
        self.p.add_visitor(self._metric)

    def test_simple_file(self):
        self.p.parse_files("test_files/mccabe.py")
        exp_result= dict (
            a=dict(McCabe=8),
            testClass=dict(
                ABC=dict(
                    McCabe=5,
                    av = dict (
                        ab = dict(McCabe=1)
                    )
                ),
                feelbarometer=dict(
                    McCabe=3,
                    bvc = dict (McCabe=1)
                )
            ),
            classy_function=dict(McCabe=2)
        )
        self.assertDictEqual(self._metric._results,exp_result)
Exemple #2
0
class TestParser(unittest.TestCase):

    def setUp(self):
        self.p = None
        self.p = Parser()

    def test_simple_file(self):
        test_metric= TestMetric()
        self.p.add_visitor(test_metric)
        self.p.parse_files("test_files/simple.py")
        self.assertListEqual(test_metric.returns,['a','b'])

    def test_add_visitor(self):
        """ Adding a real MetricVisitor Object """
        mv = [TestMetric(), TestMetric()]
        self.p.add_visitor(mv[0])
        self.p.add_visitor(mv[1])
        self.assertListEqual(self.p._visitor_list, mv)

    def test_add_visitor_2(self):
        """ Adding a MetricVisitor by String"""
        self.p.add_visitor("McCabeMetric")
        from metrics.mccabemetric import McCabeMetric
        self.assertEqual(self.p._visitor_list[0].metric_name,
                         McCabeMetric().metric_name)

    def test_add_visitor_3(self):
        """ Adding a list of metrics by string """
        self.p.add_visitor(["McCabeMetric","McCabeMetric"])
        from metrics.mccabemetric import McCabeMetric
        self.assertEqual(self.p._visitor_list[0].metric_name,
            McCabeMetric().metric_name)
        self.assertEqual(self.p._visitor_list[1].metric_name,
            McCabeMetric().metric_name)