2023-12-18 18:26:33 -05:00

52 lines
1.6 KiB
Python

from datahub.configuration.common import AllowDenyPattern
def test_allow_all() -> None:
pattern = AllowDenyPattern.allow_all()
assert pattern.allowed("foo.table")
def test_deny_all() -> None:
pattern = AllowDenyPattern(allow=[], deny=[".*"])
assert not pattern.allowed("foo.table")
def test_single_table() -> None:
pattern = AllowDenyPattern(allow=["foo.mytable"])
assert pattern.allowed("foo.mytable")
def test_prefix_match():
pattern = AllowDenyPattern(allow=["mytable"])
assert pattern.allowed("mytable.foo")
assert not pattern.allowed("foo.mytable")
def test_default_deny() -> None:
pattern = AllowDenyPattern(allow=["foo.mytable"])
assert not pattern.allowed("foo.bar")
def test_fully_speced():
pattern = AllowDenyPattern(allow=["foo.mytable"])
assert pattern.is_fully_specified_allow_list()
pattern = AllowDenyPattern(allow=["foo.*", "foo.table"])
assert not pattern.is_fully_specified_allow_list()
pattern = AllowDenyPattern(allow=["foo.?", "foo.table"])
assert not pattern.is_fully_specified_allow_list()
def test_is_allowed():
pattern = AllowDenyPattern(allow=["foo.mytable"], deny=["foo.*"])
assert pattern.get_allowed_list() == []
def test_case_sensitivity():
pattern = AllowDenyPattern(allow=["Foo.myTable"])
assert pattern.allowed("foo.mytable")
assert pattern.allowed("FOO.MYTABLE")
assert pattern.allowed("Foo.MyTable")
pattern = AllowDenyPattern(allow=["Foo.myTable"], ignoreCase=False)
assert not pattern.allowed("foo.mytable")
assert pattern.allowed("Foo.myTable")