def test_limit_to_changes__remove_problems(self): res = map(lambda f: PullFile(f), json.loads(self.two_files_json)) changes = DiffCollection(res) # Setup some fake problems. filename_1 = 'Console/Command/Task/AssetBuildTask.php' errors = ( (None, None, 'This is a general comment'), (filename_1, 117, 'Something bad'), (filename_1, 119, 'Something else bad'), (filename_1, 130, 'Filtered out, as line is not changed'), ) self.problems.add_many(errors) filename_2 = 'Test/test_files/View/Parse/single.ctp' errors = ( (filename_2, 2, 'Filtered out'), (filename_2, 3, 'Something bad'), (filename_2, 7, 'Filtered out'), ) self.problems.add_many(errors) self.problems.set_changes(changes) self.problems.limit_to_changes() result = self.problems.all(filename_1) eq_(2, len(result)) expected = [(None, None, 'This is a general comment'), (filename_1, 117, 'Something bad'), (filename_1, 119, 'Something else bad')] eq_(result.sort(), expected.sort()) result = self.problems.all(filename_2) eq_(1, len(result)) expected = [Comment(filename_2, 3, 3, 'Something bad')] eq_(result, expected)
def get_pull_request(self, fixture): pull_request = Mock(number=1, head='123abc') pull_request.files.return_value = map(lambda f: PullFile(f), json.loads(fixture)) return pull_request
def get_pull_request(self, fixture): pull_request = Mock(number=1, head='123abc') pull_request.files.return_value = [ PullFile(f) for f in json.loads(fixture) ] return pull_request
def get_mock_client(self, fixture): gh = Mock() pull_request = Mock() pull_request.files.return_value = map(lambda f: PullFile(f), json.loads(fixture)) gh.pull_request.return_value = pull_request return gh
def get_mock_client(self, fixture): gh = Mock() pull_request = Mock() pull_request.files.return_value = [ PullFile(f) for f in json.loads(fixture) ] gh.pull_request.return_value = pull_request return gh
def test_add__with_diff_containing_block_offset(self): res = [PullFile(f) for f in json.loads(self.block_offset)] changes = DiffCollection(res) problems = Problems(changes=changes) line_num = 32 problems.add('somefile.py', line_num, 'Not good') eq_(1, len(problems)) result = problems.all('somefile.py') eq_(changes.line_position('somefile.py', line_num), result[0].position, 'Offset should be transformed to match value in changes')
def test_add__with_diff_containing_block_offset(self): res = [ PullFile(f, self.session) for f in json.loads(self.block_offset) ] changes = DiffCollection(res) problems = Problems(changes=changes) line_num = 32 problems.add('somefile.py', line_num, 'Not good') self.assertEqual(1, len(problems)) result = problems.all('somefile.py') first_result = result[0] self.assertIsInstance(first_result, Comment) self.assertEqual( changes.line_position('somefile.py', line_num), first_result.position, 'Offset should be transformed to match value in changes')
def test_limit_to_changes__remove_problems(self): res = [ PullFile(f, self.session) for f in json.loads(self.two_files_json) ] changes = DiffCollection(res) # Setup some fake problems. filename_1 = 'Console/Command/Task/AssetBuildTask.php' errors = ( Comment(None, None, None, 'This is a general comment'), Comment(filename_1, 117, 117, 'Something bad'), Comment(filename_1, 119, 119, 'Something else bad'), Comment(filename_1, 130, 130, 'Filtered out, line is not changed'), ) self.problems.add_many(errors) filename_2 = 'Test/test_files/View/Parse/single.ctp' errors = ( Comment(filename_2, 2, 2, 'Filtered out'), Comment(filename_2, 3, 3, 'Something bad'), Comment(filename_2, 7, 7, 'Filtered out'), ) self.problems.add_many(errors) self.problems.set_changes(changes) self.problems.limit_to_changes() result = self.problems.all(filename_1) self.assertEqual(2, len(result)) expected = [ Comment(filename_1, 117, 117, 'Something bad'), Comment(filename_1, 119, 119, 'Something else bad')] self.assertEqual(len(result), len(expected)) self.assertEqual(result, expected) result = self.problems.all(filename_2) self.assertEqual(1, len(result)) expected = [ Comment(filename_2, 3, 3, 'Something bad') ] self.assertEqual(result, expected)
def test_limit_to_changes__first_line_in_diff(self): res = [ PullFile(f, self.session) for f in json.loads(self.two_files_json) ] changes = DiffCollection(res) # Add problems filename = 'Test/test_files/View/Parse/single.ctp' errors = ( Comment(filename, 5, 5, 'Something bad'), Comment(filename, Comment.FIRST_LINE_IN_DIFF, 0, 'First line!'), Comment(filename, 7, 7, 'Filtered out'), ) self.problems.add_many(errors) self.problems.set_changes(changes) self.problems.limit_to_changes() result = self.problems.all(filename) self.assertEqual(2, len(result)) expected = [ Comment(filename, 5, 5, 'Something bad'), Comment(filename, 3, 3, 'First line!'), ] self.assertEqual(result, expected)
def create_pull_files(data): session = GitHubSession() return [PullFile(f, session) for f in json.loads(data)]
def create_pull_files(data): return [PullFile(f) for f in json.loads(data)]
def create_pull_files(data): return map(lambda f: PullFile(f), json.loads(data))