def test_invalid_output(self): broken_json = json.dumps([{'broken': "JSON"}])[:-1] uut = (external_bear_wrap("exec")(self.Dummy)(self.section, None)) with self.assertRaises(ValueError): # Something needs to be done with the result otherwise # parse_output will not yield and thus will not raise the ValueError list(uut.parse_output(broken_json, "some_file"))
def test_settings(self): uut = (external_bear_wrap(sys.executable, settings={ "set_normal_severity": ("", bool), "set_sample_dbg_msg": ("", bool, False), "not_set_different_msg": ("", bool, True)}) (self.TestBear) (self.section, None)) results = list(uut.run(self.testfile_path, self.testfile_content, set_normal_severity=False, set_sample_dbg_msg=True, not_set_different_msg=False)) expected = [ Result( origin=uut, message="This is wrong", affected_code=(SourceRange.from_values(self.testfile_path, 1),), severity=RESULT_SEVERITY.MAJOR, debug_msg="Sample debug message" ), Result( origin=uut, message="Different message", affected_code=(SourceRange.from_values(self.testfile_path, 3),), severity=RESULT_SEVERITY.INFO)] self.assertEqual(results, expected)
def test_settings(self): uut = (external_bear_wrap(sys.executable, settings={ 'set_normal_severity': ('', bool), 'set_sample_dbg_msg': ('', bool, False), 'not_set_different_msg': ('', bool, True)}) (self.TestBear) (self.section, None)) results = list(uut.run(self.testfile_path, self.testfile_content, set_normal_severity=False, set_sample_dbg_msg=True, not_set_different_msg=False)) expected = [ Result( origin=uut, message='This is wrong', affected_code=(SourceRange.from_values(self.testfile_path, 1),), severity=RESULT_SEVERITY.MAJOR, debug_msg='Sample debug message' ), Result( origin=uut, message='Different message', affected_code=(SourceRange.from_values(self.testfile_path, 3),), severity=RESULT_SEVERITY.INFO)] self.assertEqual(results, expected)
def test_invalid_output(self): broken_json = json.dumps([{'broken': 'JSON'}])[:-1] uut = (external_bear_wrap('exec')(self.Dummy)(self.section, None)) with self.assertRaises(ValueError): # Something needs to be done with the result otherwise # parse_output will not yield and thus will not raise the ValueError list(uut.parse_output(broken_json, 'some_file'))
def test_setting_desc(self): uut = (external_bear_wrap('exec', settings={ 'asetting': ('', bool), 'bsetting': ('', bool, True), 'csetting': ('My desc.', bool, False), 'dsetting': ('Another desc', bool), 'esetting': ('', int, None) })(self.Dummy)) metadata = uut.get_metadata() self.assertEqual(metadata.non_optional_params['asetting'][0], FunctionMetadata.str_nodesc) self.assertEqual( metadata.optional_params['bsetting'][0], FunctionMetadata.str_nodesc + ' ' + FunctionMetadata.str_optional.format(True)) self.assertEqual( metadata.optional_params['csetting'][0], 'My desc.' + ' ' + FunctionMetadata.str_optional.format(False)) self.assertEqual(metadata.non_optional_params['dsetting'][0], 'Another desc') self.assertEqual( metadata.optional_params['esetting'][0], FunctionMetadata.str_nodesc + ' ' + FunctionMetadata.str_optional.format(None))
def test_setting_desc(self): uut = (external_bear_wrap("exec", settings={ "asetting": ("", bool), "bsetting": ("", bool, True), "csetting": ("My desc.", bool, False), "dsetting": ("Another desc", bool), "esetting": ("", int, None) })(self.Dummy)) metadata = uut.get_metadata() self.assertEqual(metadata.non_optional_params["asetting"][0], FunctionMetadata.str_nodesc) self.assertEqual( metadata.optional_params["bsetting"][0], FunctionMetadata.str_nodesc + " " + FunctionMetadata.str_optional.format(True)) self.assertEqual( metadata.optional_params["csetting"][0], "My desc." + " " + FunctionMetadata.str_optional.format(False)) self.assertEqual(metadata.non_optional_params["dsetting"][0], "Another desc") self.assertEqual( metadata.optional_params["esetting"][0], FunctionMetadata.str_nodesc + " " + FunctionMetadata.str_optional.format(None))
def test_optional_settings(self): uut = (external_bear_wrap(sys.executable, settings={ 'set_normal_severity': ('', bool), 'set_sample_dbg_msg': ('', bool, False), 'not_set_different_msg': ('', bool, True) })(self.TestBear)(self.section, None)) results = list( uut.run(self.testfile_path, self.testfile_content, set_normal_severity=False)) expected = [ Result(origin=uut, message='This is wrong', affected_code=(SourceRange.from_values( self.testfile_path, 1), ), severity=RESULT_SEVERITY.MAJOR), Result(origin=uut, message='This is wrong too', affected_code=(SourceRange.from_values( self.testfile_path, 3), ), severity=RESULT_SEVERITY.INFO) ] self.assertEqual(results, expected) results = list( uut.run(self.testfile_path, self.testfile_content, set_normal_severity=True)) expected = [ Result(origin=uut, message='This is wrong', affected_code=(SourceRange.from_values( self.testfile_path, 1), ), severity=RESULT_SEVERITY.NORMAL), Result(origin=uut, message='This is wrong too', affected_code=(SourceRange.from_values( self.testfile_path, 3), ), severity=RESULT_SEVERITY.NORMAL) ] self.assertEqual(results, expected)
def test_setting_desc(self): uut = (external_bear_wrap("exec", settings={ "asetting": ("", bool), "bsetting": ("", bool, True), "csetting": ("My desc.", bool, False), "dsetting": ("Another desc", bool), "esetting": ("", int, None) })(self.Dummy)) metadata = uut.get_metadata() self.assertEqual(metadata.non_optional_params["asetting"][0], FunctionMetadata.str_nodesc) self.assertEqual(metadata.optional_params["bsetting"][0], FunctionMetadata.str_nodesc + " " + FunctionMetadata.str_optional.format(True)) self.assertEqual(metadata.optional_params["csetting"][0], "My desc." + " " + FunctionMetadata.str_optional.format(False)) self.assertEqual(metadata.non_optional_params["dsetting"][0], "Another desc") self.assertEqual(metadata.optional_params["esetting"][0], FunctionMetadata.str_nodesc + " " + FunctionMetadata.str_optional.format(None))
def test_setting_desc(self): uut = (external_bear_wrap('exec', settings={ 'asetting': ('', bool), 'bsetting': ('', bool, True), 'csetting': ('My desc.', bool, False), 'dsetting': ('Another desc', bool), 'esetting': ('', int, None) })(self.Dummy)) metadata = uut.get_metadata() self.assertEqual(metadata.non_optional_params['asetting'][0], FunctionMetadata.str_nodesc) self.assertEqual(metadata.optional_params['bsetting'][0], FunctionMetadata.str_nodesc + ' ' + FunctionMetadata.str_optional.format(True)) self.assertEqual(metadata.optional_params['csetting'][0], 'My desc.' + ' ' + FunctionMetadata.str_optional.format(False)) self.assertEqual(metadata.non_optional_params['dsetting'][0], 'Another desc') self.assertEqual(metadata.optional_params['esetting'][0], FunctionMetadata.str_nodesc + ' ' + FunctionMetadata.str_optional.format(None))
def test_optional_settings(self): uut = (external_bear_wrap(sys.executable, settings={ "set_normal_severity": ("", bool), "set_sample_dbg_msg": ("", bool, False), "not_set_different_msg": ("", bool, True)}) (self.TestBear) (self.section, None)) results = list(uut.run(self.testfile_path, self.testfile_content, set_normal_severity=False)) expected = [ Result( origin=uut, message="This is wrong", affected_code=(SourceRange.from_values(self.testfile_path, 1),), severity=RESULT_SEVERITY.MAJOR ), Result( origin=uut, message="This is wrong too", affected_code=(SourceRange.from_values(self.testfile_path, 3),), severity=RESULT_SEVERITY.INFO)] self.assertEqual(results, expected) results = list(uut.run(self.testfile_path, self.testfile_content, set_normal_severity=True)) expected = [ Result( origin=uut, message="This is wrong", affected_code=(SourceRange.from_values(self.testfile_path, 1),), severity=RESULT_SEVERITY.NORMAL ), Result( origin=uut, message="This is wrong too", affected_code=(SourceRange.from_values(self.testfile_path, 3),), severity=RESULT_SEVERITY.NORMAL)] self.assertEqual(results, expected)
def test_create_arguments_non_iterable(self): uut = (external_bear_wrap("exec") (self.WrongArgsBear) (self.section, None)) with self.assertRaises(TypeError): list(uut.run(self.testfile_path, self.testfile_content))
def test_create_arguments_fail(self): uut = (external_bear_wrap('exec')(self.Dummy)) self.assertEqual(uut.create_arguments(), ())
def test_create_arguments_non_iterable(self): uut = (external_bear_wrap('exec') (self.WrongArgsBear) (self.section, None)) with self.assertRaises(TypeError): list(uut.run(self.testfile_path, self.testfile_content))
def test_decorator_invalid_parameter_types(self): # Provide some invalid severity maps. with self.assertRaises(TypeError): external_bear_wrap(executable=1337)
def test_get_executable(self): uut = (external_bear_wrap('exec')(self.TestBear)) self.assertEqual(uut.get_executable(), 'exec')
def test_decorator_invalid_parameters(self): with self.assertRaises(ValueError) as cm: external_bear_wrap('exec', invalid_arg=88) self.assertEqual( str(cm.exception), "Invalid keyword arguments provided: 'invalid_arg'")
def test_decorator_invalid_parameters(self): with self.assertRaises(ValueError) as cm: external_bear_wrap("exec", invalid_arg=88) self.assertEqual( str(cm.exception), "Invalid keyword arguments provided: 'invalid_arg'")
def test_get_executable(self): uut = (external_bear_wrap("exec")(self.TestBear)) self.assertEqual(uut.get_executable(), "exec")
def test_create_arguments_fail(self): uut = (external_bear_wrap("exec")(self.Dummy)) self.assertEqual(uut.create_arguments(), ())