From 984226c5238f14a4b3e9f74db5f1101843a887a5 Mon Sep 17 00:00:00 2001 From: galderic <12606931+galderic@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:35:05 +0100 Subject: [PATCH 1/2] feat(T-004): add /ime server time endpoint --- server.py | 7 +++++++ test_server.py | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/server.py b/server.py index 1a1856e..32b25d4 100644 --- a/server.py +++ b/server.py @@ -2,6 +2,7 @@ import json import os import uuid +from datetime import datetime from http.server import BaseHTTPRequestHandler, HTTPServer @@ -10,6 +11,10 @@ def get_linux_upload_value(): return load_one_minute +def get_linux_server_time(): + return datetime.now().astimezone().isoformat() + + def build_response(path): if path == "/hello": return 200, {"message": "hello"}, "application/json" @@ -17,6 +22,8 @@ def build_response(path): return 200, "ok", "text/plain; charset=utf-8" if path == "/upload": return 200, {"upload": get_linux_upload_value()}, "application/json" + if path == "/ime": + return 200, {"time": get_linux_server_time()}, "application/json" return 404, None, None diff --git a/test_server.py b/test_server.py index 77807eb..0666ec3 100644 --- a/test_server.py +++ b/test_server.py @@ -50,6 +50,13 @@ def test_upload_endpoint(self, _): self.assertEqual(body, {"upload": 1.23}) self.assertEqual(content_type, "application/json") + @patch("server.get_linux_server_time", return_value="2026-03-03T15:45:00+00:00") + def test_time_endpoint(self, _): + status, body, content_type = build_response("/ime") + self.assertEqual(status, 200) + self.assertEqual(body, {"time": "2026-03-03T15:45:00+00:00"}) + self.assertEqual(content_type, "application/json") + def test_missing_endpoint(self): status, body, content_type = build_response("/missing") self.assertEqual(status, 404) @@ -92,6 +99,18 @@ def test_upload_endpoint_returns_upload_value_and_request_id_header(self, _, __) self.assertEqual(handler.wfile.buffer, b'{"upload": 4.56}') self.assertTrue(handler.ended) + @patch("server.get_linux_server_time", return_value="2026-03-03T15:45:00+00:00") + @patch("server.generate_request_id", return_value="req-time") + def test_time_endpoint_returns_server_time_and_request_id_header(self, _, __): + handler = _FakeHandler("/ime") + + Handler.do_GET(handler) + + self.assertEqual(handler.status, 200) + self.assertIn(("X-Request-Id", "req-time"), handler.headers) + self.assertEqual(handler.wfile.buffer, b'{"time": "2026-03-03T15:45:00+00:00"}') + self.assertTrue(handler.ended) + if __name__ == "__main__": unittest.main() From 82bba986eef33bddc5f9be05c7b12533f1d7a337 Mon Sep 17 00:00:00 2001 From: galderic <12606931+galderic@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:06:10 +0100 Subject: [PATCH 2/2] T-004: Add server time endpoint --- .idea/codeStyles/codeStyleConfig.xml | 5 +++++ .idea/go.imports.xml | 11 +++++++++++ .idea/vcs.xml | 6 ++++++ 3 files changed, 22 insertions(+) create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/go.imports.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/go.imports.xml b/.idea/go.imports.xml new file mode 100644 index 0000000..d7202f0 --- /dev/null +++ b/.idea/go.imports.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file