2021-02-15 15:04:21 -08:00
|
|
|
from datahub.configuration.common import AllowDenyPattern
|
2021-02-15 17:53:29 -08:00
|
|
|
|
|
|
|
|
2021-04-14 13:40:24 -07:00
|
|
|
def test_allow_all() -> None:
|
2021-02-15 17:53:29 -08:00
|
|
|
pattern = AllowDenyPattern.allow_all()
|
2021-02-11 21:59:54 -08:00
|
|
|
assert pattern.allowed("foo.table")
|
2021-02-15 17:53:29 -08:00
|
|
|
|
2021-02-11 16:00:29 -08:00
|
|
|
|
2021-04-14 13:40:24 -07:00
|
|
|
def test_deny_all() -> None:
|
2021-02-15 17:53:29 -08:00
|
|
|
pattern = AllowDenyPattern(allow=[], deny=[".*"])
|
2021-02-11 21:59:54 -08:00
|
|
|
assert not pattern.allowed("foo.table")
|
2021-02-15 17:53:29 -08:00
|
|
|
|
2021-02-11 16:00:29 -08:00
|
|
|
|
2021-04-14 13:40:24 -07:00
|
|
|
def test_single_table() -> None:
|
2021-02-15 17:53:29 -08:00
|
|
|
pattern = AllowDenyPattern(allow=["foo.mytable"])
|
2021-02-11 21:59:54 -08:00
|
|
|
assert pattern.allowed("foo.mytable")
|
2022-12-30 01:26:47 -05:00
|
|
|
|
|
|
|
|
|
|
|
def test_prefix_match():
|
|
|
|
pattern = AllowDenyPattern(allow=["mytable"])
|
|
|
|
assert pattern.allowed("mytable.foo")
|
|
|
|
assert not pattern.allowed("foo.mytable")
|
2021-02-11 21:59:54 -08:00
|
|
|
|
|
|
|
|
2021-04-14 13:40:24 -07:00
|
|
|
def test_default_deny() -> None:
|
2021-02-11 21:59:54 -08:00
|
|
|
pattern = AllowDenyPattern(allow=["foo.mytable"])
|
|
|
|
assert not pattern.allowed("foo.bar")
|
2021-04-05 17:14:02 -07:00
|
|
|
|
|
|
|
|
|
|
|
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() == []
|
2021-08-10 13:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
|
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")
|