Ejemplo n.º 1
0
    def test_implicit_recursive(self):
        os.mkdir("foo")
        open("foo/bar.py", "w").close()
        open("qux.py", "w").close()

        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude \"*.py\"\n"

        config = self.loader.load(content)

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), set())
        self.assertEqual(set(excluded), {"qux.py", "foo/bar.py"})

        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude \"./*.py\"\n"

        config = self.loader.load(content)

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"foo/bar.py"})
        self.assertEqual(set(excluded), {"qux.py"})
Ejemplo n.º 2
0
    def test_exclude_all(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude \"*\"\n"

        config = self.loader.load(content)

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(included, set())
        self.assertEqual(excluded, set())

        open("foo.py", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), set())
        self.assertEqual(set(excluded), {"foo.py"})
Ejemplo n.º 3
0
    def test_requires_no_exclude(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !require does_not_exist.py\n"

        config = self.loader.load(content)

        with self.assertRaises(lib50.MissingFilesError):
            lib50.files(config.get("files"))
Ejemplo n.º 4
0
    def test_required(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !require foo.py\n"

        config = self.loader.load(content)

        open("foo.py", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"foo.py"})
        self.assertEqual(set(excluded), set())

        open("bar.c", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"foo.py", "bar.c"})
        self.assertEqual(set(excluded), set())
Ejemplo n.º 5
0
    def test_non_file_require(self):
        open("foo.py", "w").close()

        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !require \"*.py\"\n"

        config = self.loader.load(content)

        with self.assertRaises(lib50.MissingFilesError):
            included, excluded = lib50.files(config.get("files"))
Ejemplo n.º 6
0
    def test_exclude_only_one(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude foo.py\n"

        config = self.loader.load(content)

        open("foo.py", "w").close()
        open("bar.py", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"bar.py"})
        self.assertEqual(set(excluded), {"foo.py"})
Ejemplo n.º 7
0
    def test_exclude_everything_include_folder(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude \"*\"\n" \
            "    - !include foo\n"

        config = self.loader.load(content)

        os.mkdir("foo")
        open("foo/bar.py", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"foo/bar.py"})
        self.assertEqual(set(excluded), set())
Ejemplo n.º 8
0
    def test_implicit_recursive_with_slash(self):
        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !exclude \"*/*.py\"\n"

        config = self.loader.load(content)

        os.mkdir("foo")
        os.mkdir("foo/bar")
        open("foo/bar/baz.py", "w").close()
        open("foo/qux.py", "w").close()

        included, excluded = lib50.files(config.get("files"))
        self.assertEqual(set(included), {"foo/bar/baz.py"})
        self.assertEqual(set(excluded), {"foo/qux.py"})
Ejemplo n.º 9
0
    def test_no_tags(self):
        open("foo.py", "w").close()
        open("bar.py", "w").close()
        open("baz.py", "w").close()

        content = \
            "check50:\n" \
            "  files:\n" \
            "    - !include \"foo.py\"\n" \
            "    - !exclude \"bar.py\"\n" \
            "    - !require \"baz.py\"\n"
        config = self.loader.load(content)

        included, excluded = lib50.files(config.get("files"), exclude_tags=[], include_tags=[], require_tags=[])

        self.assertEqual(included, {"foo.py", "bar.py", "baz.py"})
        self.assertEqual(excluded, set())
Ejemplo n.º 10
0
    def test_custom_tags(self):
        open("foo.py", "w").close()
        open("bar.py", "w").close()
        open("baz.py", "w").close()

        content = \
            "foo50:\n" \
            "  files:\n" \
            "    - !open \"foo.py\"\n" \
            "    - !close \"bar.py\"\n" \
            "    - !exclude \"baz.py\"\n"

        loader = lib50.config.Loader("foo50")
        loader.scope("files", "open", "close", "exclude")
        config = loader.load(content)

        included, excluded = lib50.files(config.get("files"),
                                         exclude_tags=["exclude"],
                                         include_tags=[""],
                                         require_tags=["open", "close"])

        self.assertEqual(included, {"foo.py", "bar.py"})
        self.assertEqual(excluded, {"baz.py"})