Introduce option only_errors
* Validation can be runned only for errors. All warnigs will be ommited * Minor issue in setup.cfg fixed. Now 'pip install -e .' works fine Change-Id: I57d3f0713ef36535410ec4e50d3bb9286ea2741f
This commit is contained in:
parent
9dcc3296ba
commit
5e6ae600d7
|
@ -35,6 +35,12 @@ class CheckError(Exception):
|
|||
serialized[f] = self.__getattribute__(f)
|
||||
return serialized
|
||||
|
||||
def is_warning(self):
|
||||
return self.code.split(':')[-1].startswith('W')
|
||||
|
||||
def is_error(self):
|
||||
return self.code.split(':')[-1].startswith('E')
|
||||
|
||||
def __repr__(self):
|
||||
return 'CheckError({0})'.format(self.message)
|
||||
|
||||
|
|
|
@ -127,10 +127,15 @@ class Manager(object):
|
|||
'').format(plugin=ep.name, error=err))
|
||||
raise err
|
||||
|
||||
def validate(self, validators=None, select=None, ignore=None):
|
||||
def validate(self, validators=None, select=None, ignore=None,
|
||||
only_errors=False):
|
||||
validators = validators or self.validators
|
||||
report_chains = []
|
||||
for validator in validators:
|
||||
v = validator(self.pkg)
|
||||
report_chains.append(v.run())
|
||||
return self._to_list(itertools.chain(*report_chains), select, ignore)
|
||||
issues = self._to_list(itertools.chain(*report_chains), select, ignore)
|
||||
if only_errors:
|
||||
return [err for err in issues if err.is_error()]
|
||||
else:
|
||||
return issues
|
||||
|
|
|
@ -54,19 +54,16 @@ class ManagerTest(base.TestCase):
|
|||
if e in expected_errors:
|
||||
expected_errors.remove(e)
|
||||
else:
|
||||
self.force_failure('Unexpected error {}'.format(e))
|
||||
self.fail('Unexpected error {}'.format(e))
|
||||
self.assertEqual([], expected_errors, 'Expected errors left')
|
||||
|
||||
@mock.patch('muranopkgcheck.manager.pkg_loader')
|
||||
@mock.patch('muranopkgcheck.manager.error.report')
|
||||
def test_validate(self, m_error, m_pkg_loader):
|
||||
fake_error = m_error.E007.return_value
|
||||
fake_error.code = 'E007'
|
||||
fake_error.to_dict.return_value = {'code': 'E007', 'message': 'Fake'}
|
||||
fake_E000_error = m_error.E000.return_value
|
||||
fake_E000_error.code = 'E000'
|
||||
fake_E000_error.to_dict.return_value = {'code': 'E000',
|
||||
'message': 'Fake'}
|
||||
fake_error = error.CheckError('W007', 'Fake')
|
||||
m_error.W007.return_value = fake_error
|
||||
fake_E000_error = error.CheckError('E000', 'Fake')
|
||||
m_error.E000.return_value = fake_E000_error
|
||||
|
||||
def error_generator():
|
||||
yield fake_error
|
||||
|
@ -97,7 +94,11 @@ class ManagerTest(base.TestCase):
|
|||
errors)
|
||||
|
||||
m_validator.run.return_value = prepare_errors()
|
||||
errors = mgr.validate(validators=[MockValidator], select=['E007'])
|
||||
errors = mgr.validate(validators=[MockValidator], only_errors=True)
|
||||
self._assert_errors([fake_E000_error, fake_E000_error], errors)
|
||||
|
||||
m_validator.run.return_value = prepare_errors()
|
||||
errors = mgr.validate(validators=[MockValidator], select=['W007'])
|
||||
self._assert_errors([fake_error, fake_error], errors)
|
||||
|
||||
m_validator.run.return_value = prepare_errors()
|
||||
|
|
Loading…
Reference in New Issue