Skip to content

Commit 4897be1

Browse files
committed
test: generate TOML frontmatter and Markdown bodies
1 parent 288b25b commit 4897be1

6 files changed

Lines changed: 154 additions & 50 deletions

File tree

‎package-lock.json‎

Lines changed: 44 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
"node": "22.x"
1111
},
1212
"devDependencies": {
13-
"wrangler": "4.114.0"
13+
"wrangler": "4.127.1"
1414
}
1515
}

‎pyproject.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ workers = [
1414
"workers-runtime-sdk",
1515
]
1616
dev = [
17+
"hypothesis>=6.0",
1718
"pillow>=11.3,<12",
1819
"ruff==0.16.0",
1920
]

‎tests/test_app.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -447,9 +447,9 @@ def test_generated_drift_is_blocked_before_commit_and_merge(self):
447447
self.assertIn('"preview_urls": false', wrangler_config)
448448
package = json.loads((ROOT / "package.json").read_text())
449449
lock = json.loads((ROOT / "package-lock.json").read_text())
450-
self.assertEqual(package["devDependencies"]["wrangler"], "4.114.0")
450+
self.assertEqual(package["devDependencies"]["wrangler"], "4.127.1")
451451
self.assertEqual(package["engines"]["node"], "22.x")
452-
self.assertEqual(lock["packages"][""]["devDependencies"]["wrangler"], "4.114.0")
452+
self.assertEqual(lock["packages"][""]["devDependencies"]["wrangler"], "4.127.1")
453453
makefile = (ROOT / "Makefile").read_text()
454454
self.assertIn("check-node-version", makefile)
455455
self.assertIn("pywrangler sync --force", makefile)

‎tests/test_parser_properties.py‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
"""Structured properties for the Markdown example source boundary."""
2+
3+
import json
4+
import unittest
5+
6+
from hypothesis import given
7+
from hypothesis import strategies as st
8+
from src.example_loader import _split_frontmatter
9+
10+
TOML_TEXT = st.text(
11+
alphabet=st.characters(blacklist_categories=("Cc", "Cs")),
12+
max_size=200,
13+
)
14+
MARKDOWN_BODY = st.text(max_size=1_000)
15+
16+
17+
class ExampleSourceParserProperties(unittest.TestCase):
18+
@given(slug=TOML_TEXT, title=TOML_TEXT, body=MARKDOWN_BODY)
19+
def test_toml_frontmatter_round_trips_without_changing_markdown(
20+
self,
21+
slug,
22+
title,
23+
body,
24+
):
25+
"""Generated TOML metadata and arbitrary Markdown stay separated."""
26+
source = (
27+
"+++\n"
28+
f"slug = {json.dumps(slug, ensure_ascii=False)}\n"
29+
f"title = {json.dumps(title, ensure_ascii=False)}\n"
30+
"+++\n"
31+
f"{body}"
32+
)
33+
34+
metadata, parsed_body, body_line = _split_frontmatter(
35+
source,
36+
"generated.md",
37+
)
38+
39+
self.assertEqual(metadata, {"slug": slug, "title": title})
40+
self.assertEqual(parsed_body, body)
41+
self.assertEqual(body_line, 5)
42+
43+
44+
if __name__ == "__main__":
45+
unittest.main()

0 commit comments

Comments
 (0)