frontend: date UTC convertite in ora italiana alla presentazione (#42)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""Filtro local_dt: il backend parla UTC, la presentazione e' in Europe/Rome (#42)."""
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def local_dt(flask_app):
|
||||
return flask_app.jinja_env.filters["local_dt"]
|
||||
|
||||
|
||||
def test_summer_time(local_dt):
|
||||
assert local_dt("2026-10-06T08:00:00+00:00") == "06/10/2026 10:00"
|
||||
|
||||
|
||||
def test_winter_time(local_dt):
|
||||
assert local_dt("2026-01-15T08:00:00+00:00") == "15/01/2026 09:00"
|
||||
|
||||
|
||||
def test_naive_is_utc(local_dt):
|
||||
assert local_dt("2026-10-06T08:00:00") == "06/10/2026 10:00"
|
||||
|
||||
|
||||
def test_datetime_object_and_format(local_dt):
|
||||
dt = datetime(2026, 10, 6, 8, 0, tzinfo=timezone.utc)
|
||||
assert local_dt(dt, "%H:%M") == "10:00"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("empty", [None, ""])
|
||||
def test_empty(local_dt, empty):
|
||||
assert local_dt(empty) == "-"
|
||||
@@ -407,6 +407,21 @@ class TestTaskComplete:
|
||||
assert resp.status_code == 200
|
||||
assert b"productionClock(" in resp.data
|
||||
|
||||
def test_measured_at_shown_in_local_time(self, logged_in_client, mock_api_client):
|
||||
"""#42: the API sends UTC; the summary shows Europe/Rome."""
|
||||
mock_api_client.get.side_effect = [
|
||||
{"id": 1, "code": "REC-001", "name": "Test Recipe", "version": 1},
|
||||
[{"id": 1, "title": "Task 1", "order_index": 0, "subtasks": [
|
||||
{"id": 1, "marker_number": 1, "description": "d", "nominal": 1.0,
|
||||
"unit": "mm"}]}],
|
||||
None,
|
||||
{"items": [{"id": 1, "subtask_id": 1, "value": 1.0, "pass_fail": "pass",
|
||||
"measured_at": "2026-10-06T08:00:00+00:00"}]},
|
||||
]
|
||||
resp = logged_in_client.get("/measure/complete/1?version_id=5")
|
||||
assert resp.status_code == 200
|
||||
assert "06/10/2026 10:00" in resp.get_data(as_text=True)
|
||||
|
||||
def test_measurements_filtered_by_lot_serial_and_operator(
|
||||
self, logged_in_client, mock_api_client,
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user