Fix httpx.Timeout configuration in PyPI proxy
This commit is contained in:
@@ -192,7 +192,6 @@ class TestCacheSettingsModel:
|
||||
|
||||
settings = CacheSettings()
|
||||
assert hasattr(settings, 'id')
|
||||
assert hasattr(settings, 'allow_public_internet')
|
||||
assert hasattr(settings, 'auto_create_system_projects')
|
||||
|
||||
def test_model_with_values(self):
|
||||
@@ -201,11 +200,9 @@ class TestCacheSettingsModel:
|
||||
|
||||
settings = CacheSettings(
|
||||
id=1,
|
||||
allow_public_internet=False,
|
||||
auto_create_system_projects=True,
|
||||
)
|
||||
assert settings.id == 1
|
||||
assert settings.allow_public_internet is False
|
||||
assert settings.auto_create_system_projects is True
|
||||
|
||||
|
||||
@@ -365,16 +362,14 @@ class TestCacheSettingsSchemas:
|
||||
from app.schemas import CacheSettingsUpdate
|
||||
|
||||
update = CacheSettingsUpdate()
|
||||
assert update.allow_public_internet is None
|
||||
assert update.auto_create_system_projects is None
|
||||
|
||||
def test_update_schema_partial(self):
|
||||
"""Test CacheSettingsUpdate with partial fields."""
|
||||
from app.schemas import CacheSettingsUpdate
|
||||
|
||||
update = CacheSettingsUpdate(allow_public_internet=False)
|
||||
assert update.allow_public_internet is False
|
||||
assert update.auto_create_system_projects is None
|
||||
update = CacheSettingsUpdate(auto_create_system_projects=True)
|
||||
assert update.auto_create_system_projects is True
|
||||
|
||||
|
||||
class TestCacheRequestSchemas:
|
||||
@@ -388,7 +383,7 @@ class TestCacheRequestSchemas:
|
||||
url="https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
source_type="npm",
|
||||
package_name="lodash",
|
||||
tag="4.17.21",
|
||||
version="4.17.21",
|
||||
)
|
||||
assert request.url == "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
|
||||
assert request.source_type == "npm"
|
||||
@@ -1137,7 +1132,7 @@ class TestCacheRequestValidation:
|
||||
url="https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
source_type="npm",
|
||||
package_name="lodash",
|
||||
tag="4.17.21",
|
||||
version="4.17.21",
|
||||
)
|
||||
assert request.url == "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
|
||||
assert request.source_type == "npm"
|
||||
@@ -1604,11 +1599,9 @@ class TestCacheSettingsAdminAPI:
|
||||
|
||||
data = response.json()
|
||||
# Check expected fields exist
|
||||
assert "allow_public_internet" in data
|
||||
assert "auto_create_system_projects" in data
|
||||
|
||||
# Check types
|
||||
assert isinstance(data["allow_public_internet"], bool)
|
||||
assert isinstance(data["auto_create_system_projects"], bool)
|
||||
|
||||
@pytest.mark.integration
|
||||
@@ -1621,7 +1614,7 @@ class TestCacheSettingsAdminAPI:
|
||||
with httpx.Client(base_url=base_url, timeout=30.0) as unauthenticated_client:
|
||||
response = unauthenticated_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": False},
|
||||
json={"auto_create_system_projects": False},
|
||||
)
|
||||
assert response.status_code in (401, 403)
|
||||
|
||||
@@ -1635,76 +1628,43 @@ class TestCacheSettingsAdminAPI:
|
||||
response = integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={
|
||||
"allow_public_internet": not original["allow_public_internet"],
|
||||
"auto_create_system_projects": not original["auto_create_system_projects"],
|
||||
},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert data["allow_public_internet"] == (not original["allow_public_internet"])
|
||||
assert data["auto_create_system_projects"] == (not original["auto_create_system_projects"])
|
||||
|
||||
# Restore original settings
|
||||
integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={
|
||||
"allow_public_internet": original["allow_public_internet"],
|
||||
"auto_create_system_projects": original["auto_create_system_projects"],
|
||||
},
|
||||
)
|
||||
|
||||
@pytest.mark.integration
|
||||
def test_update_cache_settings_allow_public_internet(self, integration_client):
|
||||
"""Test enabling and disabling public internet access (air-gap mode)."""
|
||||
# First get current settings to restore later
|
||||
original = integration_client.get("/api/v1/admin/cache-settings").json()
|
||||
|
||||
# Disable public internet (enable air-gap mode)
|
||||
response = integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": False},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert response.json()["allow_public_internet"] is False
|
||||
|
||||
# Enable public internet (disable air-gap mode)
|
||||
response = integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": True},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert response.json()["allow_public_internet"] is True
|
||||
|
||||
# Restore original settings
|
||||
integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": original["allow_public_internet"]},
|
||||
)
|
||||
|
||||
@pytest.mark.integration
|
||||
def test_update_cache_settings_partial(self, integration_client):
|
||||
"""Test that partial updates only change specified fields."""
|
||||
# Get current settings
|
||||
original = integration_client.get("/api/v1/admin/cache-settings").json()
|
||||
|
||||
# Update only allow_public_internet
|
||||
new_value = not original["allow_public_internet"]
|
||||
# Update only auto_create_system_projects
|
||||
new_value = not original["auto_create_system_projects"]
|
||||
response = integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": new_value},
|
||||
json={"auto_create_system_projects": new_value},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert data["allow_public_internet"] == new_value
|
||||
# Other field should be unchanged
|
||||
assert data["auto_create_system_projects"] == original["auto_create_system_projects"]
|
||||
assert data["auto_create_system_projects"] == new_value
|
||||
|
||||
# Restore
|
||||
integration_client.put(
|
||||
"/api/v1/admin/cache-settings",
|
||||
json={"allow_public_internet": original["allow_public_internet"]},
|
||||
json={"auto_create_system_projects": original["auto_create_system_projects"]},
|
||||
)
|
||||
|
||||
@pytest.mark.integration
|
||||
@@ -1942,5 +1902,4 @@ class TestCacheSettingsEnvOverride:
|
||||
|
||||
data = response.json()
|
||||
# These fields should exist (may be null if no env override)
|
||||
assert "allow_public_internet_env_override" in data
|
||||
assert "auto_create_system_projects_env_override" in data
|
||||
|
||||
Reference in New Issue
Block a user