コード例 #1
0
    def testTopLevelDirExcempt(self):
        input_api = MockInputApi()
        input_api.change.RepositoryRoot = lambda: ''
        input_api.presubmit_local_path = ''

        input_api.files = [
            MockFile('infra/inclusive_language_presubmit_exempt_dirs.txt', [
                '. 2 1',
                'some/other/dir 2 1',
            ]),
            MockFile(
                'presubmit_canned_checks_test.py',
                [
                    'TEST(SomeClassTest, SomeInteraction, blacklist) {',  # nocheck
                    '}'
                ]),
            MockFile(
                'presubmit_canned_checks.py',
                ['- (void)testSth { V(whitelist); } // nocheck']),  # nocheck
        ]

        errors = presubmit_canned_checks.CheckInclusiveLanguage(
            input_api, MockOutputApi())
        self.assertEqual(1, len(errors))
        self.assertTrue('presubmit_canned_checks_test.py' in errors[0].message)
        self.assertTrue('presubmit_canned_checks.py' not in errors[0].message)
コード例 #2
0
    def testChangeIsForSomeOtherRepo(self):
        input_api = MockInputApi()
        input_api.change.RepositoryRoot = lambda: 'v8'
        input_api.presubmit_local_path = ''

        input_api.files = [
            MockFile(
                'some_file',
                [
                    '# this is a blacklist',  # nocheck
                ]),
        ]
        errors = presubmit_canned_checks.CheckInclusiveLanguage(
            input_api, MockOutputApi())
        self.assertEqual([], errors)
コード例 #3
0
    def testBlockedTermsWithLegacy(self):
        input_api = MockInputApi()
        input_api.change.RepositoryRoot = lambda: ''
        input_api.presubmit_local_path = ''

        input_api.files = [
            MockFile('infra/inclusive_language_presubmit_exempt_dirs.txt', [
                'some/ios 2 1',
                'some/other/dir 2 1',
            ]),
            MockFile(
                'some/ios/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, blacklist) {',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/ios/subdir/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, blacklist) {',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/mac/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, BlackList) {',  # nocheck
                    '}'
                ]),
            MockFile('another/ios_file.mm',
                     ['class SomeTest : public testing::Test blocklist {};']),
            MockFile('some/ios/file_egtest.mm',
                     ['- (void)testSomething { V(whitelist); }']),  # nocheck
            MockFile(
                'some/ios/file_unittest.mm',
                ['TEST_F(SomeTest, Whitelist) { V(allowlist); }']),  # nocheck
        ]

        errors = presubmit_canned_checks.CheckInclusiveLanguage(
            input_api, MockOutputApi())
        self.assertEqual(1, len(errors))
        self.assertTrue('some/ios/file.mm' not in errors[0].message)
        self.assertTrue('some/ios/subdir/file.mm' in errors[0].message)
        self.assertTrue('another/ios_file.mm' not in errors[0].message)
        self.assertTrue('some/mac/file.mm' in errors[0].message)
        self.assertTrue('some/ios/file_egtest.mm' not in errors[0].message)
        self.assertTrue('some/ios/file_unittest.mm' not in errors[0].message)
コード例 #4
0
    def testBlockedTerms(self):
        input_api = MockInputApi()
        input_api.change.RepositoryRoot = lambda: ''
        input_api.presubmit_local_path = ''

        input_api.files = [
            MockFile('infra/inclusive_language_presubmit_exempt_dirs.txt', [
                'some/dir 2 1',
                'some/other/dir 2 1',
            ]),
            MockFile(
                'some/ios/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, blacklist) {',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/mac/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, BlackList) {',  # nocheck
                    '}'
                ]),
            MockFile('another/ios_file.mm',
                     ['class SomeTest : public testing::Test blocklist {};']),
            MockFile('some/ios/file_egtest.mm',
                     ['- (void)testSomething { V(whitelist); }']),  # nocheck
            MockFile(
                'some/ios/file_unittest.mm',
                ['TEST_F(SomeTest, Whitelist) { V(allowlist); }']),  # nocheck
            MockFile(
                'some/doc/file.md',
                [
                    '# Title',
                    'Some markdown text includes master.',  # nocheck
                ]),
            MockFile(
                'some/doc/ok_file.md',
                [
                    '# Title',
                    # This link contains a '//' which the matcher thinks is a
                    # C-style comment, and the 'master' term appears after the
                    # '//' in the URL, so it gets ignored as a side-effect.
                    '[Ignored](https://git/project.git/+/master/foo)',  # nocheck
                ]),
            MockFile(
                'some/doc/branch_name_file.md',
                [
                    '# Title',
                    # Matches appearing before `//` still trigger the check.
                    '[src/master](https://git/p.git/+/master/foo)',  # nocheck
                ]),
            MockFile(
                'some/java/file/TestJavaDoc.java',
                [
                    '/**',
                    ' * This line contains the word master,',  # nocheck
                    '* ignored because this is a comment. See {@link',
                    ' * https://s/src/+/master:tools/README.md}',  # nocheck
                    ' */'
                ]),
            MockFile(
                'some/java/file/TestJava.java',
                [
                    'class TestJava {',
                    '  public String master;',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/html/file.html',
                [
                    '<-- an existing html multiline comment',
                    'says "master" here',  # nocheck
                    'in the comment -->'
                ])
        ]

        errors = presubmit_canned_checks.CheckInclusiveLanguage(
            input_api, MockOutputApi())
        self.assertEqual(1, len(errors))
        self.assertTrue('some/ios/file.mm' in errors[0].message)
        self.assertTrue('another/ios_file.mm' not in errors[0].message)
        self.assertTrue('some/mac/file.mm' in errors[0].message)
        self.assertTrue('some/ios/file_egtest.mm' in errors[0].message)
        self.assertTrue('some/ios/file_unittest.mm' in errors[0].message)
        self.assertTrue('some/doc/file.md' not in errors[0].message)
        self.assertTrue('some/doc/ok_file.md' not in errors[0].message)
        self.assertTrue(
            'some/doc/branch_name_file.md' not in errors[0].message)
        self.assertTrue(
            'some/java/file/TestJavaDoc.java' not in errors[0].message)
        self.assertTrue(
            'some/java/file/TestJava.java' not in errors[0].message)
        self.assertTrue('some/html/file.html' not in errors[0].message)
コード例 #5
0
    def testBlockedTermsWithNocheck(self):
        input_api = MockInputApi()
        input_api.change.RepositoryRoot = lambda: ''
        input_api.presubmit_local_path = ''

        input_api.files = [
            MockFile('infra/inclusive_language_presubmit_exempt_dirs.txt', [
                'some/dir 2 1',
                'some/other/dir 2 1',
            ]),
            MockFile(
                'some/ios/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, ',
                    ' blacklist) { // nocheck',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/mac/file.mm',
                [
                    'TEST(SomeClassTest, SomeInteraction, ',
                    'BlackList) { // nocheck',  # nocheck
                    '}'
                ]),
            MockFile('another/ios_file.mm',
                     ['class SomeTest : public testing::Test blocklist {};']),
            MockFile(
                'some/ios/file_egtest.mm',
                ['- (void)testSomething { ', 'V(whitelist); } // nocheck'
                 ]),  # nocheck
            MockFile(
                'some/ios/file_unittest.mm',
                [
                    'TEST_F(SomeTest, Whitelist) // nocheck',  # nocheck
                    ' { V(allowlist); }'
                ]),
            MockFile(
                'some/doc/file.md',
                [
                    'Master in markdown <!-- nocheck -->',  # nocheck
                    '## Subheading is okay'
                ]),
            MockFile(
                'some/java/file/TestJava.java',
                [
                    'class TestJava {',
                    '  public String master; // nocheck',  # nocheck
                    '}'
                ]),
            MockFile(
                'some/html/file.html',
                [
                    '<-- an existing html multiline comment',
                    'says "master" here --><!-- nocheck -->',  # nocheck
                    '<!-- in the comment -->'
                ])
        ]

        errors = presubmit_canned_checks.CheckInclusiveLanguage(
            input_api, MockOutputApi())
        self.assertEqual(0, len(errors))