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 )