release: bump version to 0.62.0
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
release / images (push) Has been cancelled

This commit is contained in:
linkong
2026-05-21 01:37:32 +08:00
parent 5c65ee24d6
commit fbca381512
138 changed files with 21303 additions and 5721 deletions

View File

@@ -4,6 +4,7 @@ import pytest
from app.api.v1 import datasources as datasources_api
from app.models.datasource import DataSource
from app.services import earth_layer_cache as earth_cache
def make_datasource(
@@ -53,6 +54,71 @@ def test_filter_datasources_by_product_status_and_collected_state():
assert filtered == [vessels]
def test_serialize_datasource_row_can_skip_endpoint_resolution():
datasource = make_datasource(7, "arcgis_cables", last_status="success", module="L2")
class ExplodingConfig:
def get_yaml_url(self, _source):
raise AssertionError("endpoint resolution should be skipped")
row = datasources_api.serialize_datasource_row(
datasource,
running_tasks={},
latest_tasks={},
record_counts={"arcgis_cables": 343},
endpoint_overrides={},
config=ExplodingConfig(),
include_endpoint=False,
)
assert row["id"] == 7
assert row["source"] == "arcgis_cables"
assert row["module"] == "L2"
assert row["last_status"] == "success"
assert row["collected_records"] == 343
assert row["has_collected_data"] is True
assert "endpoint" not in row
def test_serialize_datasource_row_includes_endpoint_when_requested():
datasource = make_datasource(8, "arcgis_landing_points")
class Config:
def get_yaml_url(self, source):
return f"https://example.test/{source}"
row = datasources_api.serialize_datasource_row(
datasource,
running_tasks={},
latest_tasks={},
record_counts={},
endpoint_overrides={},
config=Config(),
include_endpoint=True,
)
assert row["endpoint"] == "https://example.test/arcgis_landing_points"
def test_invalidate_earth_layer_cache_for_source_covers_datasource_aliases(monkeypatch):
patterns: list[str] = []
def fake_delete_pattern(pattern: str) -> int:
patterns.append(pattern)
return 1
monkeypatch.setattr(earth_cache.earth_layer_cache, "delete_pattern", fake_delete_pattern)
deleted = earth_cache.invalidate_earth_layer_cache_for_source("telegeography_cables")
assert deleted == 3
assert patterns == [
"earth:layer:v1:cables*",
"earth:layer:v1:landing-points*",
"earth:layer:v1:summary*",
]
@pytest.mark.asyncio
async def test_trigger_datasource_batch_skips_disabled_and_frequency_window(monkeypatch):
now = datetime.now(timezone.utc)