Exemple #1
0
 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))
Exemple #3
0
 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))
Exemple #6
0
    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))
Exemple #7
0
    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)
Exemple #9
0
    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)
Exemple #10
0
 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)
Exemple #11
0
 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')