77
88from main import PageResolver
99
10+
1011class TestPageResolver (unittest .TestCase ):
1112 def setUp (self ):
1213 """Set up a temporary directory structure for each test."""
@@ -20,11 +21,16 @@ def setUp(self):
2021 (self .docs_path / "index.md" ).write_text ("---\n id: home\n ---\n # Home" )
2122 (self .docs_path / "about.md" ).write_text ("---\n id: about-us\n ---\n # About" )
2223 (self .docs_path / "guides" ).mkdir ()
23- (self .docs_path / "guides" / "first.md" ).write_text ("---\n id: first-guide\n ---\n # First Guide" )
24- (self .docs_path / "guides" / "second.md" ).write_text ("---\n id: second-guide\n ---\n # Second Guide" )
24+ (self .docs_path / "guides" / "first.md" ).write_text (
25+ "---\n id: first-guide\n ---\n # First Guide"
26+ )
27+ (self .docs_path / "guides" / "second.md" ).write_text (
28+ "---\n id: second-guide\n ---\n # Second Guide"
29+ )
2530 (self .docs_path / "guides" / "subsection" ).mkdir ()
26- (self .docs_path / "guides" / "subsection" / "deep.md" ).write_text ("---\n id: deep-page\n ---\n # Deep Page" )
27-
31+ (self .docs_path / "guides" / "subsection" / "deep.md" ).write_text (
32+ "---\n id: deep-page\n ---\n # Deep Page"
33+ )
2834
2935 self .resolver = PageResolver (docs_dir = self .docs_path )
3036
@@ -35,24 +41,48 @@ def tearDown(self):
3541 def test_resolve_page_link_no_context (self ):
3642 """Test resolving page links without a current page context."""
3743 self .assertEqual (self .resolver .resolve_page_link ("home" ), "index.md" )
38- self .assertEqual (self .resolver .resolve_page_link ("first-guide" ), "guides/first.md" )
44+ self .assertEqual (
45+ self .resolver .resolve_page_link ("first-guide" ), "guides/first.md"
46+ )
3947
4048 def test_resolve_page_link_from_root (self ):
4149 """Test resolving page links from a page in the docs root."""
42- self .assertEqual (self .resolver .resolve_page_link ("about-us" , "index.md" ), "about.md" )
43- self .assertEqual (self .resolver .resolve_page_link ("first-guide" , "index.md" ), "guides/first.md" )
50+ self .assertEqual (
51+ self .resolver .resolve_page_link ("about-us" , "index.md" ), "about.md"
52+ )
53+ self .assertEqual (
54+ self .resolver .resolve_page_link ("first-guide" , "index.md" ),
55+ "guides/first.md" ,
56+ )
4457
4558 def test_resolve_page_link_from_subdir (self ):
4659 """Test resolving page links from a page in a subdirectory."""
47- self .assertEqual (self .resolver .resolve_page_link ("home" , "guides/first.md" ), "../index.md" )
48- self .assertEqual (self .resolver .resolve_page_link ("second-guide" , "guides/first.md" ), "second.md" )
49- self .assertEqual (self .resolver .resolve_page_link ("about-us" , "guides/first.md" ), "../about.md" )
50- self .assertEqual (self .resolver .resolve_page_link ("deep-page" , "guides/first.md" ), "subsection/deep.md" )
60+ self .assertEqual (
61+ self .resolver .resolve_page_link ("home" , "guides/first.md" ), "../index.md"
62+ )
63+ self .assertEqual (
64+ self .resolver .resolve_page_link ("second-guide" , "guides/first.md" ),
65+ "second.md" ,
66+ )
67+ self .assertEqual (
68+ self .resolver .resolve_page_link ("about-us" , "guides/first.md" ),
69+ "../about.md" ,
70+ )
71+ self .assertEqual (
72+ self .resolver .resolve_page_link ("deep-page" , "guides/first.md" ),
73+ "subsection/deep.md" ,
74+ )
5175
5276 def test_resolve_page_link_from_deep_subdir (self ):
5377 """Test resolving page links from a deeply nested page."""
54- self .assertEqual (self .resolver .resolve_page_link ("home" , "guides/subsection/deep.md" ), "../../index.md" )
55- self .assertEqual (self .resolver .resolve_page_link ("first-guide" , "guides/subsection/deep.md" ), "../first.md" )
78+ self .assertEqual (
79+ self .resolver .resolve_page_link ("home" , "guides/subsection/deep.md" ),
80+ "../../index.md" ,
81+ )
82+ self .assertEqual (
83+ self .resolver .resolve_page_link ("first-guide" , "guides/subsection/deep.md" ),
84+ "../first.md" ,
85+ )
5686
5787 def test_resolve_page_link_not_found (self ):
5888 """Test that resolving a non-existent page ID raises a ValueError."""
@@ -62,19 +92,20 @@ def test_resolve_page_link_not_found(self):
6292 def test_id_changes_are_picked_up (self ):
6393 """Test that the resolver picks up changes to page IDs."""
6494 self .assertEqual (self .resolver .resolve_page_link ("home" ), "index.md" )
65-
95+
6696 # Modify the ID in a file
6797 (self .docs_path / "index.md" ).write_text ("---\n id: new-home\n ---\n # Home" )
68-
98+
6999 # Clear the resolver's cache to force it to re-scan the files
70100 self .resolver ._page_cache = None
71-
101+
72102 # The new ID should now resolve correctly
73103 self .assertEqual (self .resolver .resolve_page_link ("new-home" ), "index.md" )
74-
104+
75105 # The old ID should no longer be found
76106 with self .assertRaises (ValueError ):
77107 self .resolver .resolve_page_link ("home" )
78108
109+
79110if __name__ == "__main__" :
80111 unittest .main (verbosity = 2 )
0 commit comments