Coverage for tests/test_simple_ln.py: 100%
66 statements
« prev ^ index » next coverage.py v7.6.1, created at 2026-10-15 15:22 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2026-10-15 15:22 +0000
1import inspect 1ab
3import markdown 1ab
4from inline_snapshot import snapshot 1ab
5from mdx_include.mdx_include import IncludeExtension 1ab
6from pymdownx.superfences import SuperFencesCodeExtension 1ab
8from markdown_include_variants import IncludeVariantsExtension 1ab
11def test_simple_ln(): 1ab
12 input_md = inspect.cleandoc( 1cd
13 """
14 {* docs_src/simple/tutorial001.py ln[1:3] *}
15 """
16 )
18 result = markdown.markdown( 1cd
19 input_md,
20 extensions=[
21 IncludeVariantsExtension(),
22 ],
23 )
24 assert result == snapshot( 1cd
25 inspect.cleandoc(
26 """
27 <p>//// tab | Python 3.8+
28 ```python
29 {!docs_src/simple/tutorial001.py[ln:1-3]!}</p>
30 <h1>Code below omitted 👇</h1>
31 <p>```</p>
32 <p>////</p>
33 <p>///// details | 👀 Full file preview</p>
34 <p>//// tab | Python 3.8+</p>
35 <p><code>python
36 {!docs_src/simple/tutorial001.py!}</code></p>
37 <p>////</p>
38 <p>/////</p>
39 """
40 )
41 )
44def test_simple_ln_include(): 1ab
45 input_md = inspect.cleandoc( 1ef
46 """
47 {* docs_src/simple/tutorial001.py ln[1:3] *}
48 """
49 )
51 result = markdown.markdown( 1ef
52 input_md,
53 extensions=[
54 IncludeVariantsExtension(),
55 IncludeExtension(),
56 SuperFencesCodeExtension(),
57 ],
58 )
59 assert result == snapshot( 1ef
60 inspect.cleandoc(
61 """
62 <p>//// tab | Python 3.8+
63 <div class="highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 1"</span><span class="p">)</span>
64 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 2"</span><span class="p">)</span>
65 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 3"</span><span class="p">)</span>
67 <span class="c1"># Code below omitted 👇</span>
68 </code></pre></div></p>
69 <p>////</p>
70 <p>///// details | 👀 Full file preview</p>
71 <p>//// tab | Python 3.8+</p>
72 <div class="highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 1"</span><span class="p">)</span>
73 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 2"</span><span class="p">)</span>
74 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 3"</span><span class="p">)</span>
75 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 4"</span><span class="p">)</span>
76 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 5"</span><span class="p">)</span>
77 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 6"</span><span class="p">)</span>
78 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 7"</span><span class="p">)</span>
79 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 8"</span><span class="p">)</span>
80 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 9"</span><span class="p">)</span>
81 <span class="nb">print</span><span class="p">(</span><span class="s2">"simple line 10"</span><span class="p">)</span>
82 </code></pre></div>
83 <p>////</p>
84 <p>/////</p>
85 """
86 )
87 )
90def test_simple_ln_one(): 1ab
91 input_md = inspect.cleandoc( 1gh
92 """
93 {* docs_src/simple/tutorial001.py ln[1] *}
94 """
95 )
97 result = markdown.markdown( 1gh
98 input_md,
99 extensions=[IncludeVariantsExtension()],
100 )
101 assert result == snapshot( 1gh
102 inspect.cleandoc(
103 """
104 <p>//// tab | Python 3.8+
105 ```python
106 {!docs_src/simple/tutorial001.py[ln:1-1]!}</p>
107 <h1>Code below omitted 👇</h1>
108 <p>```</p>
109 <p>////</p>
110 <p>///// details | 👀 Full file preview</p>
111 <p>//// tab | Python 3.8+</p>
112 <p><code>python
113 {!docs_src/simple/tutorial001.py!}</code></p>
114 <p>////</p>
115 <p>/////</p>
116 """
117 )
118 )
121def test_simple_ln_one_include(): 1ab
122 input_md = inspect.cleandoc( 1ij
123 """
124 {* docs_src/simple/tutorial001.py ln[1] *}
125 """
126 )
128 result = markdown.markdown( 1ij
129 input_md,
130 extensions=[IncludeVariantsExtension(), IncludeExtension()],
131 )
132 assert result == snapshot( 1ij
133 inspect.cleandoc(
134 """
135 <p>//// tab | Python 3.8+
136 ```python
137 print("simple line 1")</p>
138 <h1>Code below omitted 👇</h1>
139 <p>```</p>
140 <p>////</p>
141 <p>///// details | 👀 Full file preview</p>
142 <p>//// tab | Python 3.8+</p>
143 <p>```python
144 print("simple line 1")
145 print("simple line 2")
146 print("simple line 3")
147 print("simple line 4")
148 print("simple line 5")
149 print("simple line 6")
150 print("simple line 7")
151 print("simple line 8")
152 print("simple line 9")
153 print("simple line 10")</p>
154 <p>```</p>
155 <p>////</p>
156 <p>/////</p>
157 """
158 )
159 )
162def test_simple_ln_one_below(): 1ab
163 input_md = inspect.cleandoc( 1kl
164 """
165 {* docs_src/simple/tutorial001.py ln[3] *}
166 """
167 )
169 result = markdown.markdown( 1kl
170 input_md,
171 extensions=[IncludeVariantsExtension()],
172 )
173 assert result == snapshot( 1kl
174 inspect.cleandoc(
175 """
176 <p>//// tab | Python 3.8+
177 ```python</p>
178 <h1>Code above omitted 👆</h1>
179 <p>{!docs_src/simple/tutorial001.py[ln:3-3]!}</p>
180 <h1>Code below omitted 👇</h1>
181 <p>```</p>
182 <p>////</p>
183 <p>///// details | 👀 Full file preview</p>
184 <p>//// tab | Python 3.8+</p>
185 <p><code>python
186 {!docs_src/simple/tutorial001.py!}</code></p>
187 <p>////</p>
188 <p>/////</p>
189 """
190 )
191 )
194def test_simple_ln_one_last(): 1ab
195 input_md = inspect.cleandoc( 1mn
196 """
197 {* docs_src/simple/tutorial001.py ln[10] *}
198 """
199 )
201 result = markdown.markdown( 1mn
202 input_md,
203 extensions=[IncludeVariantsExtension()],
204 )
205 assert result == snapshot( 1mn
206 inspect.cleandoc(
207 """
208 <p>//// tab | Python 3.8+
209 ```python</p>
210 <h1>Code above omitted 👆</h1>
211 <p>{!docs_src/simple/tutorial001.py[ln:10-10]!}
212 ```</p>
213 <p>////</p>
214 <p>///// details | 👀 Full file preview</p>
215 <p>//// tab | Python 3.8+</p>
216 <p><code>python
217 {!docs_src/simple/tutorial001.py!}</code></p>
218 <p>////</p>
219 <p>/////</p>
220 """
221 )
222 )
225def test_simple_ln_block_below(): 1ab
226 input_md = inspect.cleandoc( 1op
227 """
228 {* docs_src/simple/tutorial001.py ln[2:4] *}
229 """
230 )
232 result = markdown.markdown( 1op
233 input_md,
234 extensions=[IncludeVariantsExtension()],
235 )
236 assert result == snapshot( 1op
237 inspect.cleandoc(
238 """
239 <p>//// tab | Python 3.8+
240 ```python</p>
241 <h1>Code above omitted 👆</h1>
242 <p>{!docs_src/simple/tutorial001.py[ln:2-4]!}</p>
243 <h1>Code below omitted 👇</h1>
244 <p>```</p>
245 <p>////</p>
246 <p>///// details | 👀 Full file preview</p>
247 <p>//// tab | Python 3.8+</p>
248 <p><code>python
249 {!docs_src/simple/tutorial001.py!}</code></p>
250 <p>////</p>
251 <p>/////</p>
252 """
253 )
254 )
257def test_simple_ln_block_last(): 1ab
258 input_md = inspect.cleandoc( 1qr
259 """
260 {* docs_src/simple/tutorial001.py ln[8:10] *}
261 """
262 )
264 result = markdown.markdown( 1qr
265 input_md,
266 extensions=[IncludeVariantsExtension()],
267 )
268 assert result == snapshot( 1qr
269 inspect.cleandoc(
270 """
271 <p>//// tab | Python 3.8+
272 ```python</p>
273 <h1>Code above omitted 👆</h1>
274 <p>{!docs_src/simple/tutorial001.py[ln:8-10]!}
275 ```</p>
276 <p>////</p>
277 <p>///// details | 👀 Full file preview</p>
278 <p>//// tab | Python 3.8+</p>
279 <p><code>python
280 {!docs_src/simple/tutorial001.py!}</code></p>
281 <p>////</p>
282 <p>/////</p>
283 """
284 )
285 )
288def test_simple_ln_first_middle(): 1ab
289 input_md = inspect.cleandoc( 1st
290 """
291 {* docs_src/simple/tutorial001.py ln[1, 3] *}
292 """
293 )
295 result = markdown.markdown( 1st
296 input_md,
297 extensions=[IncludeVariantsExtension()],
298 )
299 assert result == snapshot( 1st
300 inspect.cleandoc(
301 """
302 <p>//// tab | Python 3.8+
303 ```python
304 {!docs_src/simple/tutorial001.py[ln:1-1]!}</p>
305 <h1>Code here omitted 👈</h1>
306 <p>{!docs_src/simple/tutorial001.py[ln:3-3]!}</p>
307 <h1>Code below omitted 👇</h1>
308 <p>```</p>
309 <p>////</p>
310 <p>///// details | 👀 Full file preview</p>
311 <p>//// tab | Python 3.8+</p>
312 <p><code>python
313 {!docs_src/simple/tutorial001.py!}</code></p>
314 <p>////</p>
315 <p>/////</p>
316 """
317 )
318 )
321def test_simple_ln_first_middle_last(): 1ab
322 input_md = inspect.cleandoc( 1uv
323 """
324 {* docs_src/simple/tutorial001.py ln[1, 3,10 ] *}
325 """
326 )
328 result = markdown.markdown( 1uv
329 input_md,
330 extensions=[IncludeVariantsExtension()],
331 )
332 assert result == snapshot( 1uv
333 inspect.cleandoc(
334 """
335 <p>//// tab | Python 3.8+
336 ```python
337 {!docs_src/simple/tutorial001.py[ln:1-1]!}</p>
338 <h1>Code here omitted 👈</h1>
339 <p>{!docs_src/simple/tutorial001.py[ln:3-3]!}</p>
340 <h1>Code here omitted 👈</h1>
341 <p>{!docs_src/simple/tutorial001.py[ln:10-10]!}
342 ```</p>
343 <p>////</p>
344 <p>///// details | 👀 Full file preview</p>
345 <p>//// tab | Python 3.8+</p>
346 <p><code>python
347 {!docs_src/simple/tutorial001.py!}</code></p>
348 <p>////</p>
349 <p>/////</p>
350 """
351 )
352 )
355def test_simple_ln_middle_middle(): 1ab
356 input_md = inspect.cleandoc( 1wx
357 """
358 {* docs_src/simple/tutorial001.py ln[3,8 ] *}
359 """
360 )
362 result = markdown.markdown( 1wx
363 input_md,
364 extensions=[IncludeVariantsExtension()],
365 )
366 assert result == snapshot( 1wx
367 inspect.cleandoc(
368 """
369 <p>//// tab | Python 3.8+
370 ```python</p>
371 <h1>Code above omitted 👆</h1>
372 <p>{!docs_src/simple/tutorial001.py[ln:3-3]!}</p>
373 <h1>Code here omitted 👈</h1>
374 <p>{!docs_src/simple/tutorial001.py[ln:8-8]!}</p>
375 <h1>Code below omitted 👇</h1>
376 <p>```</p>
377 <p>////</p>
378 <p>///// details | 👀 Full file preview</p>
379 <p>//// tab | Python 3.8+</p>
380 <p><code>python
381 {!docs_src/simple/tutorial001.py!}</code></p>
382 <p>////</p>
383 <p>/////</p>
384 """
385 )
386 )
389def test_simple_ln_first_block_middle_block(): 1ab
390 input_md = inspect.cleandoc( 1yz
391 """
392 {* docs_src/simple/tutorial001.py ln[1:3, 5:7] *}
393 """
394 )
396 result = markdown.markdown( 1yz
397 input_md,
398 extensions=[IncludeVariantsExtension()],
399 )
400 assert result == snapshot( 1yz
401 inspect.cleandoc(
402 """
403 <p>//// tab | Python 3.8+
404 ```python
405 {!docs_src/simple/tutorial001.py[ln:1-3]!}</p>
406 <h1>Code here omitted 👈</h1>
407 <p>{!docs_src/simple/tutorial001.py[ln:5-7]!}</p>
408 <h1>Code below omitted 👇</h1>
409 <p>```</p>
410 <p>////</p>
411 <p>///// details | 👀 Full file preview</p>
412 <p>//// tab | Python 3.8+</p>
413 <p><code>python
414 {!docs_src/simple/tutorial001.py!}</code></p>
415 <p>////</p>
416 <p>/////</p>
417 """
418 )
419 )
422def test_simple_ln_first_block_middle_block_last_block(): 1ab
423 input_md = inspect.cleandoc( 1AB
424 """
425 {* docs_src/simple/tutorial001.py ln[1:3, 5:7,9:10] *}
426 """
427 )
429 result = markdown.markdown( 1AB
430 input_md,
431 extensions=[IncludeVariantsExtension()],
432 )
433 assert result == snapshot( 1AB
434 inspect.cleandoc(
435 """
436 <p>//// tab | Python 3.8+
437 ```python
438 {!docs_src/simple/tutorial001.py[ln:1-3]!}</p>
439 <h1>Code here omitted 👈</h1>
440 <p>{!docs_src/simple/tutorial001.py[ln:5-7]!}</p>
441 <h1>Code here omitted 👈</h1>
442 <p>{!docs_src/simple/tutorial001.py[ln:9-10]!}
443 ```</p>
444 <p>////</p>
445 <p>///// details | 👀 Full file preview</p>
446 <p>//// tab | Python 3.8+</p>
447 <p><code>python
448 {!docs_src/simple/tutorial001.py!}</code></p>
449 <p>////</p>
450 <p>/////</p>
451 """
452 )
453 )
456def test_simple_ln_first_block_middle_last_block(): 1ab
457 input_md = inspect.cleandoc( 1CD
458 """
459 {* docs_src/simple/tutorial001.py ln[1:3, 5,9:10] *}
460 """
461 )
463 result = markdown.markdown( 1CD
464 input_md,
465 extensions=[IncludeVariantsExtension()],
466 )
467 assert result == snapshot( 1CD
468 inspect.cleandoc(
469 """
470 <p>//// tab | Python 3.8+
471 ```python
472 {!docs_src/simple/tutorial001.py[ln:1-3]!}</p>
473 <h1>Code here omitted 👈</h1>
474 <p>{!docs_src/simple/tutorial001.py[ln:5-5]!}</p>
475 <h1>Code here omitted 👈</h1>
476 <p>{!docs_src/simple/tutorial001.py[ln:9-10]!}
477 ```</p>
478 <p>////</p>
479 <p>///// details | 👀 Full file preview</p>
480 <p>//// tab | Python 3.8+</p>
481 <p><code>python
482 {!docs_src/simple/tutorial001.py!}</code></p>
483 <p>////</p>
484 <p>/////</p>
485 """
486 )
487 )
490def test_simple_ln_first_middle_block_last(): 1ab
491 input_md = inspect.cleandoc( 1EF
492 """
493 {* docs_src/simple/tutorial001.py ln[1, 5:7,10] *}
494 """
495 )
497 result = markdown.markdown( 1EF
498 input_md,
499 extensions=[IncludeVariantsExtension()],
500 )
501 assert result == snapshot( 1EF
502 inspect.cleandoc(
503 """
504 <p>//// tab | Python 3.8+
505 ```python
506 {!docs_src/simple/tutorial001.py[ln:1-1]!}</p>
507 <h1>Code here omitted 👈</h1>
508 <p>{!docs_src/simple/tutorial001.py[ln:5-7]!}</p>
509 <h1>Code here omitted 👈</h1>
510 <p>{!docs_src/simple/tutorial001.py[ln:10-10]!}
511 ```</p>
512 <p>////</p>
513 <p>///// details | 👀 Full file preview</p>
514 <p>//// tab | Python 3.8+</p>
515 <p><code>python
516 {!docs_src/simple/tutorial001.py!}</code></p>
517 <p>////</p>
518 <p>/////</p>
519 """
520 )
521 )