Improve AI daily report operations and dedupe observability
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
import unittest
|
||||
from email.message import Message
|
||||
from urllib.error import HTTPError
|
||||
from unittest.mock import patch
|
||||
|
||||
@@ -65,6 +66,20 @@ class ClientTests(unittest.TestCase):
|
||||
self.assertEqual(client.create_post({"title": "t"})["slug"], "ai-2026-06-04")
|
||||
client.publish_post("ai-2026-06-04")
|
||||
|
||||
def test_blog_api_client_slug_lookup_falls_back_to_query_endpoint(self):
|
||||
responses = [
|
||||
HTTPError("https://blog.example/api/service/posts/ai-2026-06-10", 404, "Not Found", Message(), None),
|
||||
FakeResponse(json.dumps({"items": [{"slug": "ai-2026-06-10", "content": "body"}]}).encode("utf-8")),
|
||||
]
|
||||
with patch("urllib.request.urlopen", side_effect=responses) as urlopen:
|
||||
client = BlogApiClient(base_url="https://blog.example", token="token")
|
||||
post = client.get_post_by_slug("ai-2026-06-10")
|
||||
|
||||
self.assertIsNotNone(post)
|
||||
assert post is not None
|
||||
self.assertEqual(post["slug"], "ai-2026-06-10")
|
||||
self.assertEqual(urlopen.call_count, 2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user