def test_apply_fixer_diff__invalid_strategy(self): original = Mock() changed = Mock() context = {'strategy': 'bad stategy'} with self.assertRaises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) self.assertIn('Unknown', str(err.exception))
def test_apply_fixer_diff__missing_strategy_context(): original = Mock() changed = Mock() context = {'strategy': 'commit'} with assert_raises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) assert_in('Could not create commit workflow', str(err.exception))
def test_apply_fixer_diff__missing_strategy_context(self): original = Mock() changed = Mock() context = {'strategy': 'commit'} with self.assertRaises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) self.assertIn('Could not create commit workflow', str(err.exception))
def test_apply_fixer_diff__missing_strategy_key(): original = Mock() changed = Mock() context = {} with assert_raises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) assert_in('Missing', str(err.exception))
def test_apply_fixer_diff__invalid_strategy(): original = Mock() changed = Mock() context = {'strategy': 'bad stategy'} with assert_raises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) assert_in('Unknown', str(err.exception))
def test_apply_fixer_diff__missing_strategy_key(self): original = Mock() changed = Mock() context = {} with self.assertRaises(fixers.ConfigurationError) as err: fixers.apply_fixer_diff(original, changed, context) self.assertIn('Missing', str(err.exception))
def test_apply_fixer_diff__no_intersection(self): strategy_factory = Mock() strategy = Mock() strategy_factory.return_value = strategy fixers.add_strategy('mock', strategy_factory) original = load_fixture('diff/no_intersect_original.txt') updated = load_fixture('diff/no_intersect_updated.txt') original = parse_diff(original) updated = parse_diff(updated) context = {'strategy': 'mock'} fixers.apply_fixer_diff(original, updated, context) self.assertEqual(0, strategy.execute.call_count)
def test_apply_fixer_diff__no_intersection(): strategy_factory = Mock() strategy = Mock() strategy_factory.return_value = strategy fixers.add_strategy('mock', strategy_factory) original = load_fixture('diff/no_intersect_original.txt') updated = load_fixture('diff/no_intersect_updated.txt') original = parse_diff(original) updated = parse_diff(updated) context = {'strategy': 'mock'} fixers.apply_fixer_diff(original, updated, context) eq_(0, strategy.execute.call_count)
def test_apply_fixer_diff__calls_execute(self): strategy_factory = Mock() strategy = Mock() strategy_factory.return_value = strategy fixers.add_strategy('mock', strategy_factory) original = load_fixture('diff/intersecting_hunks_original.txt') updated = load_fixture('diff/intersecting_hunks_updated.txt') original = parse_diff(original) updated = parse_diff(updated) context = {'strategy': 'mock'} fixers.apply_fixer_diff(original, updated, context) self.assertEqual(1, strategy.execute.call_count)
def apply_fixers(self, tool_list, files_to_check): try: fixer_context = fixers.create_context( self._config, self._target_path, self._repository, self._pull_request, ) fixer_diff = fixers.run_fixers(tool_list, self._target_path, files_to_check) fixers.apply_fixer_diff(self._changes, fixer_diff, fixer_context) except (ConfigurationError, WorkflowError) as e: log.warn('Fixer application failed. Got %s', e) message = u'Unable to apply fixers. {}'.format(e) self.problems.add(IssueComment(message)) except Exception as e: log.warn( 'Fixer application failed, ' 'rolling back working tree. Got %s', e) fixers.rollback_changes(self._target_path)
def apply_fixers(self, tool_list, files_to_check): try: fixer_context = fixers.create_context( self._config, self._target_path, self._repository, self._pull_request, ) fixer_diff = fixers.run_fixers( tool_list, self._target_path, files_to_check) fixers.apply_fixer_diff( self._changes, fixer_diff, fixer_context) except (ConfigurationError, WorkflowError) as e: log.info('Fixer application failed. Got %s', e) message = u'Unable to apply fixers. {}'.format(e) self.problems.add(InfoComment(message)) except Exception as e: log.info('Fixer application failed, ' 'rolling back working tree. Got %s', e) fixers.rollback_changes(self._target_path)
def test_apply_fixer_diff__strategy_execution_fails(): strategy_factory = Mock() strategy = Mock() strategy.execute.side_effect = RuntimeError strategy_factory.return_value = strategy fixers.add_strategy('mock', strategy_factory) original = load_fixture('diff/intersecting_hunks_original.txt') updated = load_fixture('diff/intersecting_hunks_updated.txt') original = parse_diff(original) updated = parse_diff(updated) context = {'strategy': 'mock'} out = fixers.apply_fixer_diff(original, updated, context) eq_(1, strategy.execute.call_count) eq_(out, None, 'No output and no exception')