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)
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)
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)
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)
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))