Skip to content

Commit 5c636aa

Browse files
committed
tests: Add tests
1 parent 2830d14 commit 5c636aa

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

tests/test_renderer.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
"""Tests for the handlers.python module."""
2+
3+
from copy import deepcopy
4+
5+
from mkdocstrings.handlers.python.collector import rebuild_category_lists
6+
from mkdocstrings.handlers.python.renderer import _sort_key_alphabetical, _sort_key_source, sort_object # noqa: WPS450
7+
8+
9+
def test_members_order():
10+
"""Assert that members sorting functions work correctly."""
11+
subcategories = {key: [] for key in ("attributes", "classes", "functions", "methods", "modules")}
12+
categories = {"children": {}, **subcategories}
13+
collected = {
14+
"name": "root",
15+
"children": {
16+
"b": {"name": "b", "source": {"line_start": 0}, **categories},
17+
"a": {"name": "a", **categories},
18+
"z": {"name": "z", "source": {"line_start": 100}, **categories},
19+
"no_name": {"source": {"line_start": 10}, **categories},
20+
"c": {
21+
"name": "c",
22+
"source": {"line_start": 30},
23+
"children": {
24+
"z": {"name": "z", "source": {"line_start": 200}, **categories},
25+
"a": {"name": "a", "source": {"line_start": 20}, **categories},
26+
},
27+
**subcategories,
28+
},
29+
},
30+
"attributes": ["b", "c", "no_name", "z", "a"],
31+
"classes": [],
32+
"functions": [],
33+
"methods": [],
34+
"modules": [],
35+
}
36+
rebuild_category_lists(collected)
37+
alphebetical = deepcopy(collected)
38+
sort_object(alphebetical, _sort_key_alphabetical)
39+
40+
rebuilt_categories = {"children": [], **subcategories}
41+
assert (
42+
alphebetical["children"]
43+
== alphebetical["attributes"]
44+
== [
45+
{"name": "a", **rebuilt_categories},
46+
{"name": "b", "source": {"line_start": 0}, **rebuilt_categories},
47+
{
48+
"name": "c",
49+
"source": {"line_start": 30},
50+
"children": [
51+
{"name": "a", "source": {"line_start": 20}, **rebuilt_categories},
52+
{"name": "z", "source": {"line_start": 200}, **rebuilt_categories},
53+
],
54+
**subcategories,
55+
},
56+
{"name": "z", "source": {"line_start": 100}, **rebuilt_categories},
57+
{"source": {"line_start": 10}, **rebuilt_categories},
58+
]
59+
)
60+
61+
source = deepcopy(collected)
62+
sort_object(source, _sort_key_source)
63+
64+
assert (
65+
source["children"]
66+
== source["attributes"]
67+
== [
68+
{"name": "a", **rebuilt_categories},
69+
{"name": "b", "source": {"line_start": 0}, **rebuilt_categories},
70+
{"source": {"line_start": 10}, **rebuilt_categories},
71+
{
72+
"name": "c",
73+
"source": {"line_start": 30},
74+
"children": [
75+
{"name": "a", "source": {"line_start": 20}, **rebuilt_categories},
76+
{"name": "z", "source": {"line_start": 200}, **rebuilt_categories},
77+
],
78+
**subcategories,
79+
},
80+
{"name": "z", "source": {"line_start": 100}, **rebuilt_categories},
81+
]
82+
)

0 commit comments

Comments
 (0)