0c252e7904
* Cleanup deprecations * Remove config deprecations and fix config compat * Add some tests and remove unneeded dependency * Add some tests and remove unneeded dependency * Remove pytest-dependency
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
from os import environ
|
|
from pathlib import Path
|
|
from types import ModuleType
|
|
|
|
import pytest
|
|
|
|
from sanic.exceptions import LoadFileException
|
|
from sanic.utils import load_module_from_file_location
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"location",
|
|
(
|
|
Path(__file__).parent / "static" / "app_test_config.py",
|
|
str(Path(__file__).parent / "static" / "app_test_config.py"),
|
|
str(Path(__file__).parent / "static" / "app_test_config.py").encode(),
|
|
),
|
|
)
|
|
def test_load_module_from_file_location(location):
|
|
module = load_module_from_file_location(location)
|
|
|
|
assert isinstance(module, ModuleType)
|
|
|
|
|
|
def test_loaded_module_from_file_location_name():
|
|
module = load_module_from_file_location(
|
|
str(Path(__file__).parent / "static" / "app_test_config.py")
|
|
)
|
|
|
|
name = module.__name__
|
|
if "C:\\" in name:
|
|
name = name.split("\\")[-1]
|
|
assert name == "app_test_config"
|
|
|
|
|
|
def test_load_module_from_file_location_with_non_existing_env_variable():
|
|
with pytest.raises(
|
|
LoadFileException,
|
|
match="The following environment variables are not set: MuuMilk",
|
|
):
|
|
|
|
load_module_from_file_location("${MuuMilk}")
|
|
|
|
|
|
def test_load_module_from_file_location_using_env():
|
|
environ["APP_TEST_CONFIG"] = "static/app_test_config.py"
|
|
location = str(Path(__file__).parent / "${APP_TEST_CONFIG}")
|
|
module = load_module_from_file_location(location)
|
|
|
|
assert isinstance(module, ModuleType)
|