class CPDBearTest(unittest.TestCase):
    def setUp(self):
        self.base_test_path = os.path.abspath(
            os.path.join(os.path.dirname(__file__),
                         'code_duplication_samples'))

        self.section = Section('default')
        self.section.append(Setting('language', 'java'))
        self.section.language = Language['Java']
        self.queue = Queue()

    def test_good_file(self):
        good_file = os.path.join(self.base_test_path, 'good_code.java')

        with open(good_file) as file:
            good_filelines = file.readlines()

        self.uut = CPDBear({good_file: good_filelines}, self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertEqual(result, [])

    def test_bad_file(self):
        bad_file = os.path.join(self.base_test_path, 'bad_code.java')

        with open(bad_file) as file:
            bad_filelines = file.readlines()

        self.uut = CPDBear({bad_file: bad_filelines}, self.section, self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertNotEqual(result, [])

    def test_unsupported_language(self):
        self.section.update_setting(key='language', new_value='html')
        self.section.language = Language['html']

        self.uut = CPDBear({'file_name': 'hello world  \n'}, self.section,
                           self.queue)

        list(self.uut.run_bear_from_section([], {}))
        self.assertEqual(self.uut.message_queue.queue[0].log_level,
                         logging.ERROR)
        self.assertIn('Hypertext Markup Language',
                      self.uut.message_queue.queue[0].message)

    def test_check_prerequisites(self):
        with mock.patch('bears.general.CPDBear.which') as mock_which:
            mock_which.side_effect = [None, None, None]
            self.assertEqual(CPDBear.check_prerequisites(),
                             'bash is not installed.')

            mock_which.side_effect = ['path/to/bash', None, None]
            self.assertEqual(
                CPDBear.check_prerequisites(),
                'PMD is missing. Make sure to install it '
                'from <https://pmd.github.io/>.')
class CPDBearTest(unittest.TestCase):

    def setUp(self):
        self.base_test_path = os.path.abspath(os.path.join(
            os.path.dirname(__file__),
            'code_duplication_samples'))

        self.section = Section('default')
        self.section.append(Setting('language', 'java'))
        self.section.language = Language['Java']
        self.queue = Queue()

    def test_good_file(self):
        good_file = os.path.join(self.base_test_path, 'good_code.java')

        with open(good_file) as file:
            good_filelines = file.readlines()

        self.uut = CPDBear({good_file: good_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertEqual(result, [])

    def test_bad_file(self):
        bad_file = os.path.join(self.base_test_path, 'bad_code.java')

        with open(bad_file) as file:
            bad_filelines = file.readlines()

        self.uut = CPDBear({bad_file: bad_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertNotEqual(result, [])

    def test_unsupported_language(self):
        self.section.update_setting(
            key='language', new_value='html')
        self.section.language = Language['html']

        self.uut = CPDBear({'file_name': 'hello world  \n'},
                           self.section,
                           self.queue)

        list(self.uut.run_bear_from_section([], {}))
        self.assertEqual(
            self.uut.message_queue.queue[0].log_level, logging.ERROR)
        self.assertIn('Hypertext Markup Language',
                      self.uut.message_queue.queue[0].message)
class CPDBearTest(unittest.TestCase):

    def setUp(self):
        self.base_test_path = os.path.abspath(os.path.join(
            os.path.dirname(__file__),
            'code_duplication_samples'))

        self.section = Section('default')
        self.section.append(Setting('language', 'java'))
        self.queue = Queue()

    def test_good_file(self):
        good_file = os.path.join(self.base_test_path, 'good_code.java')

        with open(good_file) as file:
            good_filelines = file.readlines()

        self.uut = CPDBear({good_file: good_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertEqual(result, [])

    def test_bad_file(self):

        bad_file = os.path.join(self.base_test_path, 'bad_code.java')

        with open(bad_file) as file:
            bad_filelines = file.readlines()

        self.uut = CPDBear({bad_file: bad_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertNotEqual(result, [])

    def test_unsupported_language(self):
        self.section.update_setting(
            key='language', new_value='unsupported_language')

        self.uut = CPDBear({'file_name': 'hello world  \n'},
                           self.section,
                           self.queue)

        list(self.uut.run_bear_from_section([], {}))
        self.assertEqual(
            self.uut.message_queue.queue[0].log_level, logging.ERROR)
        self.assertIn('unsupported_language',
                      self.uut.message_queue.queue[0].message)
Exemple #4
0
    def test_update_setting(self):
        section = Section("section", None)

        section.append(Setting("key1", "value11"))
        section.append(Setting("key2", "value12"))

        section.update_setting("key1", new_value="value13")
        self.assertEqual(str(section), "section {key1 : 'value13', key2 : 'value12'}")
        section.update_setting("key1", "key3")
        self.assertEqual(str(section), "section {key3 : 'value13', key2 : 'value12'}")
        section.update_setting("key3", "key4", "value14")
        self.assertEqual(str(section), "section {key4 : 'value14', key2 : 'value12'}")
    def test_update_setting(self):
        section = Section('section', None)

        section.append(Setting('key1', 'value11'))
        section.append(Setting('key2', 'value12'))

        section.update_setting('key1', new_value='value13')
        self.assertEqual(str(section),
                         "section {key1 : 'value13', key2 : 'value12'}")
        section.update_setting('key1', 'key3')
        self.assertEqual(str(section),
                         "section {key3 : 'value13', key2 : 'value12'}")
        section.update_setting('key3', 'key4', 'value14')
        self.assertEqual(str(section),
                         "section {key4 : 'value14', key2 : 'value12'}")
Exemple #6
0
    def test_update_setting(self):
        section = Section('section', None)

        section.append(Setting('key1', 'value11'))
        section.append(Setting('key2', 'value12'))

        section.update_setting('key1', new_value='value13')
        self.assertEqual(str(section),
                         "section {key1 : 'value13', key2 : 'value12'}")
        section.update_setting('key1', 'key3')
        self.assertEqual(str(section),
                         "section {key3 : 'value13', key2 : 'value12'}")
        section.update_setting('key3', 'key4', 'value14')
        self.assertEqual(str(section),
                         "section {key4 : 'value14', key2 : 'value12'}")
Exemple #7
0
    def test_update_setting(self):
        section = Section("section", None)

        section.append(Setting("key1", "value11"))
        section.append(Setting("key2", "value12"))

        section.update_setting("key1", new_value="value13")
        self.assertEqual("section {key1 : value13, key2 : value12}",
                         section.__str__())
        section.update_setting("key1", "key3")
        self.assertEqual("section {key3 : value13, key2 : value12}",
                         section.__str__())
        section.update_setting("key3", "key4", "value14")
        self.assertEqual("section {key4 : value14, key2 : value12}",
                         section.__str__())
Exemple #8
0
    def test_update_setting(self):
        section = Section("section", None)

        section.append(Setting("key1", "value11"))
        section.append(Setting("key2", "value12"))

        section.update_setting("key1", new_value="value13")
        self.assertEqual(str(section),
                         "section {key1 : 'value13', key2 : 'value12'}")
        section.update_setting("key1", "key3")
        self.assertEqual(str(section),
                         "section {key3 : 'value13', key2 : 'value12'}")
        section.update_setting("key3", "key4", "value14")
        self.assertEqual(str(section),
                         "section {key4 : 'value14', key2 : 'value12'}")
class CPDBearTest(unittest.TestCase):

    def setUp(self):
        self.base_test_path = os.path.abspath(os.path.join(
            os.path.dirname(__file__),
            'code_duplication_samples'))

        self.section = Section('default')
        self.section.append(Setting('language', 'java'))
        self.section.language = Language['Java']
        self.queue = Queue()

    def test_good_file(self):
        good_file = os.path.join(self.base_test_path, 'good_code.java')

        with open(good_file) as file:
            good_filelines = file.readlines()

        self.uut = CPDBear({good_file: good_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertEqual(result, [])

    def test_bad_file(self):
        bad_file = os.path.join(self.base_test_path, 'bad_code.java')

        with open(bad_file) as file:
            bad_filelines = file.readlines()

        self.uut = CPDBear({bad_file: bad_filelines},
                           self.section,
                           self.queue)

        result = list(self.uut.run_bear_from_section([], {}))

        self.assertNotEqual(result, [])

    def test_unsupported_language(self):
        self.section.update_setting(
            key='language', new_value='html')
        self.section.language = Language['html']

        self.uut = CPDBear({'file_name': 'hello world  \n'},
                           self.section,
                           self.queue)

        list(self.uut.run_bear_from_section([], {}))
        self.assertEqual(
            self.uut.message_queue.queue[0].log_level, logging.ERROR)
        self.assertIn('Hypertext Markup Language',
                      self.uut.message_queue.queue[0].message)

    def test_check_prerequisites(self):
        with mock.patch('bears.general.CPDBear.which') as mock_which:
            mock_which.side_effect = [None, None, None]
            self.assertEqual(CPDBear.check_prerequisites(),
                             'bash is not installed.')

            mock_which.side_effect = ['path/to/bash', None, None]
            self.assertEqual(CPDBear.check_prerequisites(),
                             'PMD is missing. Make sure to install it '
                             'from <https://pmd.github.io/>.')