63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import pytest
|
|
from superset_tool.models import SupersetConfig
|
|
from superset_tool.utils.logger import belief_scope
|
|
|
|
# [DEF:test_superset_config_url_normalization:Function]
|
|
# @PURPOSE: Tests that SupersetConfig correctly normalizes the base URL.
|
|
# @PRE: SupersetConfig class is available.
|
|
# @POST: URL normalization is verified.
|
|
def test_superset_config_url_normalization():
|
|
with belief_scope("test_superset_config_url_normalization"):
|
|
auth = {
|
|
"provider": "db",
|
|
"username": "admin",
|
|
"password": "password",
|
|
"refresh": "token"
|
|
}
|
|
|
|
# Test with /api/v1 already present
|
|
config = SupersetConfig(
|
|
env="dev",
|
|
base_url="http://localhost:8088/api/v1",
|
|
auth=auth
|
|
)
|
|
assert config.base_url == "http://localhost:8088/api/v1"
|
|
|
|
# Test without /api/v1
|
|
config = SupersetConfig(
|
|
env="dev",
|
|
base_url="http://localhost:8088",
|
|
auth=auth
|
|
)
|
|
assert config.base_url == "http://localhost:8088/api/v1"
|
|
|
|
# Test with trailing slash
|
|
config = SupersetConfig(
|
|
env="dev",
|
|
base_url="http://localhost:8088/",
|
|
auth=auth
|
|
)
|
|
assert config.base_url == "http://localhost:8088/api/v1"
|
|
# [/DEF:test_superset_config_url_normalization:Function]
|
|
|
|
# [DEF:test_superset_config_invalid_url:Function]
|
|
# @PURPOSE: Tests that SupersetConfig raises ValueError for invalid URLs.
|
|
# @PRE: SupersetConfig class is available.
|
|
# @POST: ValueError is raised for invalid URLs.
|
|
def test_superset_config_invalid_url():
|
|
with belief_scope("test_superset_config_invalid_url"):
|
|
auth = {
|
|
"provider": "db",
|
|
"username": "admin",
|
|
"password": "password",
|
|
"refresh": "token"
|
|
}
|
|
|
|
with pytest.raises(ValueError, match="Must start with http:// or https://"):
|
|
SupersetConfig(
|
|
env="dev",
|
|
base_url="localhost:8088",
|
|
auth=auth
|
|
)
|
|
# [/DEF:test_superset_config_invalid_url:Function]
|