~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_source.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-10-06 20:45:48 UTC
  • mfrom: (4728.1.2 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20091006204548-bjnc3z4k256ppimz
MutableTree.has_changes() does not require a tree parameter anymore

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2008 Canonical Ltd
2
 
#   Authors: Robert Collins <robert.collins@canonical.com>
3
 
#            and others
 
1
# Copyright (C) 2005, 2006, 2008, 2009 Canonical Ltd
4
2
#
5
3
# This program is free software; you can redistribute it and/or modify
6
4
# it under the terms of the GNU General Public License as published by
35
33
    )
36
34
import bzrlib.branch
37
35
from bzrlib.tests import (
38
 
    KnownFailure,
39
36
    TestCase,
40
37
    TestSkipped,
41
38
    )
43
40
 
44
41
# Files which are listed here will be skipped when testing for Copyright (or
45
42
# GPL) statements.
46
 
COPYRIGHT_EXCEPTIONS = ['bzrlib/lsprof.py']
 
43
COPYRIGHT_EXCEPTIONS = ['bzrlib/lsprof.py', 'bzrlib/_bencode_py.py',
 
44
    'bzrlib/doc_generate/sphinx_conf.py']
47
45
 
48
 
LICENSE_EXCEPTIONS = ['bzrlib/lsprof.py']
 
46
LICENSE_EXCEPTIONS = ['bzrlib/lsprof.py', 'bzrlib/_bencode_py.py',
 
47
    'bzrlib/doc_generate/sphinx_conf.py']
49
48
# Technically, 'bzrlib/lsprof.py' should be 'bzrlib/util/lsprof.py',
50
49
# (we do not check bzrlib/util/, since that is code bundled from elsewhere)
51
50
# but for compatibility with previous releases, we don't want to move it.
 
51
#
 
52
# sphinx_conf is semi-autogenerated.
52
53
 
53
54
 
54
55
class TestSourceHelper(TestCase):
284
285
    def test_coding_style(self):
285
286
        """Check if bazaar code conforms to some coding style conventions.
286
287
 
287
 
        Currently we check for:
 
288
        Currently we assert that the following is not present:
288
289
         * any tab characters
289
 
         * trailing white space
290
290
         * non-unix newlines
291
291
         * no newline at end of files
 
292
 
 
293
        Print how many files have
 
294
         * trailing white space
292
295
         * lines longer than 79 chars
293
 
           (only print how many files and lines are in violation)
294
296
        """
295
297
        tabs = {}
296
298
        trailing_ws = {}
321
323
                'Tab characters were found in the following source files.'
322
324
                '\nThey should either be replaced by "\\t" or by spaces:'))
323
325
        if trailing_ws:
324
 
            problems.append(self._format_message(trailing_ws,
325
 
                'Trailing white space was found in the following source files:'
326
 
                ))
 
326
            print ("There are %i lines with trailing white space in %i files."
 
327
                % (sum([len(lines) for f, lines in trailing_ws.items()]),
 
328
                    len(trailing_ws)))
327
329
        if illegal_newlines:
328
330
            problems.append(self._format_message(illegal_newlines,
329
331
                'Non-unix newlines were found in the following source files:'))
338
340
               '\n\n    %s'
339
341
               % ('\n    '.join(no_newline_at_eof)))
340
342
        if problems:
341
 
            raise KnownFailure("test_coding_style has failed")
342
343
            self.fail('\n\n'.join(problems))
343
344
 
344
345
    def test_no_asserts(self):
358
359
                    return True
359
360
            return False
360
361
        badfiles = []
 
362
        assert_re = re.compile(r'\bassert\b')
361
363
        for fname, text in self.get_source_file_contents():
362
364
            if not self.is_our_code(fname):
363
365
                continue
364
 
            ast = parser.ast2tuple(parser.suite(''.join(text)))
 
366
            if not assert_re.search(text):
 
367
                continue
 
368
            ast = parser.ast2tuple(parser.suite(text))
365
369
            if search(ast):
366
370
                badfiles.append(fname)
367
371
        if badfiles: