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

1import inspect 1ab

2 

3import markdown 1ab

4from inline_snapshot import snapshot 1ab

5from mdx_include.mdx_include import IncludeExtension 1ab

6from pymdownx.superfences import SuperFencesCodeExtension 1ab

7 

8from markdown_include_variants import IncludeVariantsExtension 1ab

9 

10 

11def test_simple_ln(): 1ab

12 input_md = inspect.cleandoc( 1cd

13 """ 

14 {* docs_src/simple/tutorial001.py ln[1:3] *} 

15 """ 

16 ) 

17 

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 ) 

42 

43 

44def test_simple_ln_include(): 1ab

45 input_md = inspect.cleandoc( 1ef

46 """ 

47 {* docs_src/simple/tutorial001.py ln[1:3] *} 

48 """ 

49 ) 

50 

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> 

66 

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 ) 

88 

89 

90def test_simple_ln_one(): 1ab

91 input_md = inspect.cleandoc( 1gh

92 """ 

93 {* docs_src/simple/tutorial001.py ln[1] *} 

94 """ 

95 ) 

96 

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 ) 

119 

120 

121def test_simple_ln_one_include(): 1ab

122 input_md = inspect.cleandoc( 1ij

123 """ 

124 {* docs_src/simple/tutorial001.py ln[1] *} 

125 """ 

126 ) 

127 

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 ) 

160 

161 

162def test_simple_ln_one_below(): 1ab

163 input_md = inspect.cleandoc( 1kl

164 """ 

165 {* docs_src/simple/tutorial001.py ln[3] *} 

166 """ 

167 ) 

168 

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 ) 

192 

193 

194def test_simple_ln_one_last(): 1ab

195 input_md = inspect.cleandoc( 1mn

196 """ 

197 {* docs_src/simple/tutorial001.py ln[10] *} 

198 """ 

199 ) 

200 

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 ) 

223 

224 

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 ) 

231 

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 ) 

255 

256 

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 ) 

263 

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 ) 

286 

287 

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 ) 

294 

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 ) 

319 

320 

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 ) 

327 

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 ) 

353 

354 

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 ) 

361 

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 ) 

387 

388 

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 ) 

395 

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 ) 

420 

421 

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 ) 

428 

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 ) 

454 

455 

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 ) 

462 

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 ) 

488 

489 

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 ) 

496 

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 )