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
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()