Пример #1
0
 def test_returns_two_empty_lists_if_file_is_not_present(self, _):
     patterns = IgnoreConfigManager.get_config()
     self.assertEqual(
         patterns,
         IgnoreConfigManager.get_patterns(
             io.StringIO(cli_constants.DEFAULT_IGNORE_LIST)),
     )
Пример #2
0
 def test_whitelisted_lines(self, mock_file, _):
     configs = [
         ("foo.c", "*.c"),
         (".c", "*.c"),
         ("foo/foo.c", "*.c"),
         ("foo/foo.c", "foo.c"),
         ("foo.c", "/*.c"),
         ("foo.c", "/foo.c"),
         ("foo.c", "foo.c"),
         ("foo.c", "foo.[ch]"),
         ("foo/bar/bla.c", "foo/**"),
         ("foo/bar/bla/blie.c", "foo/**/blie.c"),
         ("foo/bar/bla.c", "**/bla.c"),
         ("bla.c", "**/bla.c"),
         ("foo/bar", "foo/**/bar"),
         ("foo/bla/bar", "foo/**/bar"),
         ("foo/bar/", "bar/"),
         ("foo/bar/", "bar"),
         ("foo/bar/something", "foo/bar/*"),
     ]
     for (path, pattern) in configs:
         mock_file.return_value.__enter__.return_value = [pattern]
         patterns = IgnoreConfigManager.get_config()
         self.assertEqual(
             (self.get_ignored(patterns), self.get_whitelisted(patterns)),
             ([pattern], []),
         )
         assert len(list(IgnoreConfigManager.find_matching(path,
                                                           patterns))) == 1
Пример #3
0
    def test_ignores_commented_lines(self, mock_file, _):
        file_data = ["", "# comment", "", "*.py"]
        mock_file.return_value.__enter__.return_value = file_data

        patterns = IgnoreConfigManager.get_config()
        self.assertEqual(
            (self.get_ignored(patterns), self.get_whitelisted(patterns)),
            (["*.py"], []))
Пример #4
0
    def test_properly_interprets_whitelisted_globs(self, mock_file, _):
        file_data = ["", "# comment", "*.py", "!file1.py"]
        mock_file.return_value.__enter__.return_value = file_data

        patterns = IgnoreConfigManager.get_config()
        self.assertEqual(
            (self.get_ignored(patterns), self.get_whitelisted(patterns)),
            (["*.py"], ["file1.py"]),
        )
Пример #5
0
    def test_trims_slash_prefix_from_abs_paths(self, mock_file, _):
        file_data = ["/test", "!/ignore"]
        mock_file.return_value.__enter__.return_value = file_data

        patterns = IgnoreConfigManager.get_config()
        self.assertEqual(
            (self.get_ignored(patterns), self.get_whitelisted(patterns)),
            (["/test"], ["/ignore"]),
        )
Пример #6
0
    def test_escaping_of_globs_that_start_with_reserved_chars(self, mock_file, _):
        file_data = ["", r"# comment", r"\#file1", r"\!file2"]  # noqa
        mock_file.return_value.__enter__.return_value = file_data

        patterns = IgnoreConfigManager.get_config()
        self.assertEqual(
            (self.get_ignored(patterns), self.get_whitelisted(patterns)),
            (["#file1", "!file2"], []),
        )
Пример #7
0
 def test_ignored_lines(self, mock_file, _):
     configs = [
         ("foo.c", "foo.[dh]"),
         ("foo/foo.c", "/foo.c"),
         ("foo/foo.c", "/*.c"),
         ("foo/bar/", "/bar/"),
         ("foo/bar/", "foo/bar/*"),
         ("foo/bar", "foo?bar"),
     ]
     for (path, pattern) in configs:
         mock_file.return_value.__enter__.return_value = [pattern]
         patterns = IgnoreConfigManager.get_config()
         self.assertEqual(
             (self.get_ignored(patterns), self.get_allowed(patterns)),
             ([pattern], []),
         )
         assert list(IgnoreConfigManager.find_matching(path,
                                                       patterns)) == []
Пример #8
0
 def test_returns_two_empty_lists_if_file_is_not_present(self, _):
     patterns = IgnoreConfigManager.get_config()
     self.assertEqual(patterns, [])