示例#1
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     result = self.bear.execute()
     self.assertEqual([True, 30], result)
示例#2
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     result = self.bear.execute()
     self.assertEqual([True, 30], result)
示例#3
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     self.section.append(Setting('remove_unreachable_code', 'False'))
     self.section.append(Setting('minimum_clone_tokens', 40))
     result = self.bear.execute()
     self.assertEqual([False, 40], result)
示例#4
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['remove_unreachable_code'] = True
     expected['minimum_clone_tokens'] = 30
     self.assertEqual(expected, dict(result))
示例#5
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['remove_unreachable_code'] = True
     expected['minimum_clone_tokens'] = 30
     self.assertEqual(expected, dict(result))
示例#6
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     self.section.append(Setting('remove_unreachable_code', 'False'))
     self.section.append(Setting('minimum_clone_tokens', 40))
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['minimum_clone_tokens'] = 40
     self.assertEqual(expected, dict(result))
示例#7
0
    def test_extract_aspects_from_section_with_exclude(self):
        section = Section('section')
        section.append(Setting('aspects', 'commitmessage'))
        section.append(Setting('excludes', 'TrailingPeriod'))
        section.language = Language['py 3.4']

        aspects = extract_aspects_from_section(section)

        self.assertTrue(issubaspect(get_aspect('trailingperiod'),
                                    get_aspect('commitmessage')))
        self.assertIsNone(aspects.get('trailingperiod'))
示例#8
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     self.section.append(
         Setting('remove_unreachable_code', 'False'))
     self.section.append(
         Setting('minimum_clone_tokens', 40))
     result = self.bear.execute()
     self.assertEqual([False, 40], result)
示例#9
0
class RunDecoratedBear(LocalBear):
    @map_setting_to_aspect(
        remove_unreachable_code=get_aspect('UnreachableCode'),
        minimum_clone_tokens=get_aspect('Clone').min_clone_tokens,
    )
    def run(
        self,
        remove_unreachable_code: bool = False,
        minimum_clone_tokens: int = 10,
    ):
        return [remove_unreachable_code, minimum_clone_tokens]
示例#10
0
    def test_extract_aspects_from_section_with_exclude(self):
        section = Section('section')
        section.append(Setting('aspects', 'commitmessage'))
        section.append(Setting('excludes', 'TrailingPeriod'))
        section.append(Setting('language', 'py 3.4'))

        aspects = extract_aspects_from_section(section)

        self.assertTrue(
            issubaspect(get_aspect('trailingperiod'),
                        get_aspect('commitmessage')))
        self.assertIsNone(aspects.get('trailingperiod'))
示例#11
0
    def test_aspect_bear(self):
        with bear_test_module():
            aspects = AspectList([
                get_aspect('unusedglobalvariable')('py'),
                get_aspect('unusedlocalvariable')('py'),
            ])
            local_bears, global_bears = collect_bears_by_aspects(
                aspects, [BEAR_KIND.LOCAL, BEAR_KIND.GLOBAL])

        self.assertEqual(len(global_bears), 0)
        self.assertEqual(len(local_bears), 1)
        self.assertIs(local_bears[0].name, 'AspectTestBear')
示例#12
0
    def test_aspect_bear(self):
        with bear_test_module():
            aspects = AspectList([
                get_aspect('unusedglobalvariable')('py'),
                get_aspect('unusedlocalvariable')('py'),
            ])
            local_bears, global_bears = collect_bears_by_aspects(
                aspects,
                [BEAR_KIND.LOCAL, BEAR_KIND.GLOBAL])

        self.assertEqual(len(global_bears), 0)
        self.assertEqual(len(local_bears), 1)
        self.assertIs(local_bears[0].name, 'AspectTestBear')
示例#13
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
         get_aspect('Clone')('py', min_clone_tokens=30),
     ])
     self.section.append(
         Setting('remove_unreachable_code', 'False'))
     self.section.append(
         Setting('minimum_clone_tokens', 40))
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['minimum_clone_tokens'] = 40
     self.assertEqual(expected, dict(result))
示例#14
0
class RunDecoratedBear(Bear):
    @staticmethod
    def kind():
        return BEAR_KIND.LOCAL

    @map_setting_to_aspect(
        remove_unreachable_code=get_aspect('UnreachableCode'),
        minimum_clone_tokens=get_aspect('Clone').min_clone_tokens,
    )
    def run(
        self,
        remove_unreachable_code: bool = False,
        minimum_clone_tokens: int = 10,
    ):
        return [remove_unreachable_code, minimum_clone_tokens]
示例#15
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('Indentation')('py', indent_type='tab'),
     ])
     self.section.append(Setting('use_spaces', True))
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     self.assertEqual(expected, dict(result))
示例#16
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('Indentation')('py', indent_type='tab'),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['use_spaces'] = False
     self.assertEqual(expected, dict(result))
示例#17
0
 def test_partial_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['remove_unreachable_code'] = True
     self.assertEqual(expected, dict(result))
示例#18
0
 def test_partial_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['remove_unreachable_code'] = True
     self.assertEqual(expected, dict(result))
示例#19
0
 def test_setting_priority(self):
     self.section.aspects = AspectList([
         get_aspect('Indentation')('py', indent_type='tab'),
     ])
     self.section.append(Setting('use_spaces', True))
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     self.assertEqual(expected, dict(result))
示例#20
0
 def test_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('Indentation')('py', indent_type='tab'),
     ])
     result = self.bear.execute()
     expected = self.EXPECTED.copy()
     expected['use_spaces'] = False
     self.assertEqual(expected, dict(result))
示例#21
0
class RunDecoratedBear(LocalBear):
    @map_setting_to_aspect(
        remove_unreachable_code=get_aspect('UnreachableCode'),
        minimum_clone_tokens=get_aspect('Clone').min_clone_tokens,
    )
    @map_ambiguous_setting_to_aspect(
        use_spaces=(get_aspect('Indentation').indent_type, [('space', True),
                                                            ('tab', False)]), )
    def run(
        self,
        remove_unreachable_code: bool = False,
        minimum_clone_tokens: int = 10,
        use_spaces: bool = True,
    ):
        return [
            ('remove_unreachable_code', remove_unreachable_code),
            ('minimum_clone_tokens', minimum_clone_tokens),
            ('use_spaces', use_spaces),
        ]
示例#22
0
    def test_collect_bears_unfulfilled_aspect(self):
        aspects = AspectList([
            get_aspect('unusedvariable')('py'),
        ])

        logger = logging.getLogger()
        with bear_test_module(), self.assertLogs(logger, 'WARNING') as log:
            local_bears, global_bears = collect_bears_by_aspects(
                aspects, [BEAR_KIND.LOCAL, BEAR_KIND.GLOBAL])
        self.assertRegex(
            log.output[0], 'coala cannot find bear that could analyze the '
            r'following aspects: \['
            r"'Root\.Redundancy\.UnusedVariable\.UnusedParameter'"
            r'\]')

        self.assertEqual(global_bears, [])
        self.assertEqual(str(local_bears),
                         "[<class 'AspectTestBear.AspectTestBear'>]")
示例#23
0
    def test_collect_bears_unfulfilled_aspect(self):
        aspects = AspectList([
            get_aspect('unusedvariable')('py'),
        ])

        logger = logging.getLogger()
        with bear_test_module(), self.assertLogs(logger, 'WARNING') as log:
            local_bears, global_bears = collect_bears_by_aspects(
                aspects,
                [BEAR_KIND.LOCAL, BEAR_KIND.GLOBAL])
        self.assertRegex(log.output[0],
                         'coala cannot find bear that could analyze the '
                         'following aspects: \['
                         "'Root\.Redundancy\.UnusedVariable\.UnusedParameter'"
                         '\]')

        self.assertEqual(global_bears, [])
        self.assertEqual(str(local_bears),
                         "[<class 'AspectTestBear.AspectTestBear'>]")
    invalid_files=(),
    settings={'max_line_length': 200}
)

PycodestyleBearInfiniteLineLengthTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(file_with_very_long_line,),
    invalid_files=(),
    settings={'max_line_length': 0})

PycodestyleBearAspectsTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(small_line,),
    invalid_files=(long_line,),
    aspects=AspectList([
        get_aspect('LineLength')('Python', max_line_length=30),
    ]),
)

PycodestyleBearSettingsOverAspectsTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(small_line,),
    invalid_files=(long_line,),
    aspects=AspectList([
        get_aspect('LineLength')('Python', max_line_length=2),
    ]),
    settings={'max_line_length': 30},
)


class PycodestyleBearTest(unittest.TestCase):
示例#25
0
 def test_partial_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
     ])
     result = self.bear.execute()
     self.assertEqual([True, 10], result)
示例#26
0
    valid_files=(long_line, ),
    invalid_files=(),
    settings={'max_line_length': 200})

PycodestyleBearInfiniteLineLengthTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(file_with_very_long_line, ),
    invalid_files=(),
    settings={'max_line_length': 0})

PycodestyleBearAspectsTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(small_line, ),
    invalid_files=(long_line, ),
    aspects=AspectList([
        get_aspect('LineLength')('Python', max_line_length=30),
    ]),
)

PycodestyleBearSettingsOverAspectsTest = verify_local_bear(
    PycodestyleBear,
    valid_files=(small_line, ),
    invalid_files=(long_line, ),
    aspects=AspectList([
        get_aspect('LineLength')('Python', max_line_length=2),
    ]),
    settings={'max_line_length': 30},
)


class PycodestyleBearTest(unittest.TestCase):
示例#27
0
 def setUp(self):
     self.section = Section('')
     self.section.aspects = AspectList([
         get_aspect('LineLength')('Python', max_line_length=30),
     ])
     self.uut = PycodestyleBear(self.section, Queue())
示例#28
0
LineLengthBearValidLanguageTest = verify_local_bear(
    LineLengthBear,
    valid_files=(test_file,),
    invalid_files=(invalid_general_file,),
    settings={'language': 'C'},
)


LineLengthBearAspectTest = verify_local_bear(
    LineLengthBear,
    valid_files=(test_file,),
    invalid_files=('testa',
                   'test line'),
    aspects=AspectList([
        get_aspect('LineLength')('Unknown', max_line_length=4),
        ]),
)


SettingsOverAspectsPriorityTest = verify_local_bear(
    LineLengthBear,
    valid_files=(test_file,),
    invalid_files=('testa',
                   'test line'),
    aspects=AspectList([
        get_aspect('LineLength')('Unknown', max_line_length=10),
        ]),
    settings={'max_line_length': '4'},
)
 def setUp(self):
     self.section = Section('')
     self.section.aspects = AspectList([
         get_aspect('LineLength')('Python', max_line_length=30),
     ])
     self.uut = PycodestyleBear(self.section, Queue())
示例#30
0
 def test_partial_mapping(self):
     self.section.aspects = AspectList([
         get_aspect('UnreachableCode')('py'),
     ])
     result = self.bear.execute()
     self.assertEqual([True, 10], result)