Example #1
0
 def test_can_add_analyzer_for_filetype(self):
     conf = Configuration()
     analyzer = Analyzer()
     conf.add_analyzer_for_file_type(analyzer, 'javascript')
     resource = Resource('file.js')
     analyzers = conf.get_analyzers_for_resource(resource)
     self.assertListEqual([analyzer], analyzers)
Example #2
0
 def test_returns_non_when_asking_for_analyzers_for_an_unknown_file_type(
         self):
     conf = Configuration()
     analyzer = Analyzer()
     conf.add_analyzer_for_file_type(analyzer, 'javascript')
     resource = Resource('file.foo')
     analyzers = conf.get_analyzers_for_resource(resource)
     self.assertIsNone(analyzers)
Example #3
0
class TestAnalyzer(unittest.TestCase):

    def setUp(self):
        self.analyzer = Analyzer()
        self.resource = Resource('path/to/some/file')

    def tearDown(self):
        pass

    def test_has_an_analyze_method_that_takes_a_resource(self):
        self.analyzer.analyze(self.resource)

    def test_has_an_analyze_method_requires_a_resource_argument(self):
        self.assertRaises(Exception, self.analyzer.analyze, "some text")

    def test_analyze_method_produces_an_analysis_instance(self):
        analysis = self.analyzer.analyze(self.resource)
        self.assertIsNotNone(analysis)
        self.assertIsInstance(analysis, Analysis)

    def test_analysis_has_a_messages_property(self):
        analysis = self.analyzer.analyze(None)
        self.assertIsNone(analysis.messages)

    def test_analysis_has_a_warnings_property(self):
        analysis = self.analyzer.analyze(None)
        self.assertIsNone(analysis.warnings)

    def test_analysis_has_an_errors_property(self):
        analysis = self.analyzer.analyze(None)
        self.assertIsNone(analysis.errors)

    def test_analysis_has_a_good_property(self):
        analysis = self.analyzer.analyze(None)
        self.assertIsNotNone(analysis.good)
Example #4
0
    def test_add_analyzer_checks_classes(self):
        conf = Configuration()
        self.assertRaises(Exception, conf.add_analyzer_for_file_type,
                          'string instead of an analyzer', 'javascript')

        # should not throw
        conf.add_analyzer_for_file_type(Analyzer(), 'javascript')
        # should not throw
        conf.add_analyzer_for_file_type(SizeAnalyzer(), 'javascript')
Example #5
0
 def test_get_analyzers_for_resource_with_skip_list(self):
     lib_resource = Resource(os.path.join(os.getcwd(), 'lib', 'jquery.js'))
     src_resource = Resource(os.path.join(os.getcwd(), 'src', 'file.js'))
     conf = Configuration()
     analyzer = Analyzer()
     conf.add_analyzer_for_file_type(analyzer, 'javascript', ['lib/*'])
     self.assertIsNone(conf.get_analyzers_for_resource(lib_resource))
     self.assertEqual([analyzer],
                      conf.get_analyzers_for_resource(src_resource))
Example #6
0
 def test_add_analyzer_for_file_type_raises_when_skip_list_is_a_string(
         self):
     conf = Configuration()
     self.assertRaises(Exception, conf.add_analyzer_for_file_type,
                       Analyzer(), 'javascript', 'something invalid')
Example #7
0
 def setUp(self):
     self.analyzer = Analyzer()
     self.resource = Resource('path/to/some/file')