Beispiel #1
0
    def _get_code(self, issue, tabbed=False):
        '''Gets lines of code from a file

        :param filename: Filename of file with code in it
        :param line_list: A list of integers corresponding to line numbers
        :return: string of code
        '''
        issue_line = []
        prepend = ""

        file_len = sum(1 for line in open(issue['fname']))
        lines = utils.lines_with_context(issue['lineno'],
                                         issue['linerange'],
                                         self.max_lines,
                                         file_len)

        for l in lines:
            if l:
                if tabbed:
                    prepend = "%s\t" % l
                issue_line.append(prepend + linecache.getline(
                                  issue['fname'],
                                  l))

        return ''.join(issue_line)
Beispiel #2
0
    def get_code(self, max_lines=-1, tabbed=False):
        '''Gets lines of code from a file the generated this issue.

        :param max_lines: Max lines of context to return
        :param tabbed: Use tabbing in the output
        :return: strings of code
        '''
        lc = linecache
        file_len = sum(1 for line in open(self.fname))
        lines = utils.lines_with_context(self.lineno, self.linerange,
                                         max_lines, file_len)

        if not tabbed:
            return ''.join([lc.getline(self.fname, l) for l in lines])
        return ''.join(["%s\t%s" % (l, lc.getline(self.fname, l))
                        for l in lines])
Beispiel #3
0
    def _get_code(self, issue, tabbed=False):
        '''Gets lines of code from a file

        :param filename: Filename of file with code in it
        :param line_list: A list of integers corresponding to line numbers
        :return: string of code
        '''
        issue_line = []
        prepend = ""

        file_len = self._file_length(issue['fname'])
        lines = utils.lines_with_context(issue['lineno'], issue['linerange'],
                                         self.max_lines, file_len)

        for l in lines:
            if l:
                if tabbed:
                    prepend = "%s\t" % l
                issue_line.append(prepend +
                                  linecache.getline(issue['fname'], l))

        return ''.join(issue_line)
Beispiel #4
0
 def test_lines_with_context(self):
     res = b_utils.lines_with_context(2, [0, 1, 2, 3, 4], 20, 100)
     self.assertEqual([-1, 0, 1, 2, 3, 4, 5], res)
     res = b_utils.lines_with_context(8, [0, 1, 2, 3, 4, 5, 6, 7], 3, 100)
     self.assertEqual([7, 8], res)
     res = b_utils.lines_with_context(8, [0, 1, 2, 3, 4, 5, 6, 7], 3, 6)
     self.assertEqual([2, 3, 4], res)
     res = b_utils.lines_with_context(1, [0, 1, 2, 3, 4, 5, 6, 7], 3, 6)
     self.assertEqual([0, 1, 2], res)
     res = b_utils.lines_with_context(5, [5, 6, 7], 4, 6)
     self.assertEqual([4, 5, 6, 7], res)
     res = b_utils.lines_with_context(0, [0], 0, 0)
     self.assertEqual([], res)
     self.assertRaises(
         ValueError, b_utils.lines_with_context,
         3, [5, 6, 7], 4, 6
     )