50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import pytest
|
|
from superset_tool.models import SupersetConfig
|
|
|
|
def 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_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
|
|
)
|