89 lines
2.2 KiB
Python
89 lines
2.2 KiB
Python
|
import pytest
|
||
|
|
||
|
import jinjax
|
||
|
|
||
|
|
||
|
def test_add_folder_with_default_prefix():
|
||
|
catalog = jinjax.Catalog()
|
||
|
catalog.add_folder("file_path")
|
||
|
|
||
|
assert "file_path" in catalog.prefixes[""].searchpath
|
||
|
|
||
|
|
||
|
def test_add_folder_with_custom_prefix():
|
||
|
catalog = jinjax.Catalog()
|
||
|
catalog.add_folder("file_path", prefix="custom")
|
||
|
|
||
|
assert "file_path" in catalog.prefixes["custom"].searchpath
|
||
|
|
||
|
|
||
|
def test_add_folder_with_dirty_prefix():
|
||
|
catalog = jinjax.Catalog()
|
||
|
catalog.add_folder("file_path", prefix="/custom.")
|
||
|
|
||
|
assert "/custom." not in catalog.prefixes
|
||
|
assert "file_path" in catalog.prefixes["custom"].searchpath
|
||
|
|
||
|
|
||
|
def test_add_folders_with_same_prefix():
|
||
|
catalog = jinjax.Catalog()
|
||
|
catalog.add_folder("file_path1", prefix="custom")
|
||
|
catalog.add_folder("file_path2", prefix="custom")
|
||
|
|
||
|
assert "file_path1" in catalog.prefixes["custom"].searchpath
|
||
|
assert "file_path2" in catalog.prefixes["custom"].searchpath
|
||
|
|
||
|
|
||
|
def test_add_same_folder_in_same_prefix_does_nothing():
|
||
|
catalog = jinjax.Catalog()
|
||
|
catalog.add_folder("file_path", prefix="custom")
|
||
|
catalog.add_folder("file_path", prefix="custom")
|
||
|
|
||
|
assert catalog.prefixes["custom"].searchpath.count("file_path") == 1
|
||
|
|
||
|
|
||
|
def test_add_module_legacy():
|
||
|
class Module:
|
||
|
components_path = "legacy_path"
|
||
|
prefix = "legacy"
|
||
|
|
||
|
catalog = jinjax.Catalog()
|
||
|
module = Module()
|
||
|
catalog.add_module(module)
|
||
|
|
||
|
assert "legacy_path" in catalog.prefixes["legacy"].searchpath
|
||
|
|
||
|
|
||
|
def test_add_module_legacy_with_default_prefix():
|
||
|
class Module:
|
||
|
components_path = "legacy_path"
|
||
|
|
||
|
catalog = jinjax.Catalog()
|
||
|
module = Module()
|
||
|
catalog.add_module(module)
|
||
|
|
||
|
assert "legacy_path" in catalog.prefixes[""].searchpath
|
||
|
|
||
|
|
||
|
def test_add_module_legacy_with_custom_prefix():
|
||
|
class Module:
|
||
|
components_path = "legacy_path"
|
||
|
prefix = "legacy"
|
||
|
|
||
|
catalog = jinjax.Catalog()
|
||
|
module = Module()
|
||
|
catalog.add_module(module, prefix="custom")
|
||
|
|
||
|
assert "legacy" not in catalog.prefixes
|
||
|
assert "legacy_path" in catalog.prefixes["custom"].searchpath
|
||
|
|
||
|
|
||
|
def test_add_module_fails_with_other_modules():
|
||
|
class Module:
|
||
|
pass
|
||
|
|
||
|
catalog = jinjax.Catalog()
|
||
|
module = Module()
|
||
|
with pytest.raises(AttributeError):
|
||
|
catalog.add_module(module)
|