PageRenderTime 37ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/emacs-pymacs-0.25/tests/t01_pppp_works.py

#
Python | 1073 lines | 1066 code | 5 blank | 2 comment | 22 complexity | c7cd681557ac478cefcf3d0d23c89ad5 MD5 | raw file
Possible License(s): GPL-2.0
  1. # -*- coding: utf-8 -*-
  2. # Checking if the Poor's Python Pre-Processor works.
  3. exec(compile(open('../pppp').read(), '../pppp', 'exec'))
  4. def setup_module(module):
  5. run.synclines = False
  6. run.context = {'TRUE': True, 'FALSE': False}
  7. def validate(input, expected):
  8. def validate1(input, expected):
  9. fragments = []
  10. run.transform_file('pppp.py', input.splitlines(True), fragments.append)
  11. output = ''.join(fragments)
  12. assert output == expected, (output, expected)
  13. validate1(input, expected)
  14. prefix = ' ' * run.indent
  15. validate1(
  16. ''.join([prefix + line for line in input.splitlines(True)]),
  17. ''.join([prefix + line for line in expected.splitlines(True)]))
  18. def test_none():
  19. yield (validate,
  20. '',
  21. '')
  22. yield (validate,
  23. 'line1\n',
  24. 'line1\n')
  25. yield (validate,
  26. 'line1\n'
  27. 'line2\n',
  28. 'line1\n'
  29. 'line2\n')
  30. def test_yes():
  31. yield (validate,
  32. 'if TRUE:\n'
  33. ' line1\n'
  34. 'line2\n'
  35. 'line3\n',
  36. 'line1\n'
  37. 'line2\n'
  38. 'line3\n')
  39. yield (validate,
  40. 'if TRUE:\n'
  41. ' line1\n'
  42. ' line2\n'
  43. 'line3\n',
  44. 'line1\n'
  45. 'line2\n'
  46. 'line3\n')
  47. yield (validate,
  48. 'if TRUE:\n'
  49. ' line1\n'
  50. ' line2\n'
  51. ' line3\n',
  52. 'line1\n'
  53. 'line2\n'
  54. 'line3\n')
  55. yield (validate,
  56. 'line1\n'
  57. 'if TRUE:\n'
  58. ' line2\n'
  59. 'line3\n',
  60. 'line1\n'
  61. 'line2\n'
  62. 'line3\n')
  63. yield (validate,
  64. 'line1\n'
  65. 'if TRUE:\n'
  66. ' line2\n'
  67. ' line3\n',
  68. 'line1\n'
  69. 'line2\n'
  70. 'line3\n')
  71. yield (validate,
  72. 'line1\n'
  73. 'line2\n'
  74. 'if TRUE:\n'
  75. ' line3\n',
  76. 'line1\n'
  77. 'line2\n'
  78. 'line3\n')
  79. yield (validate,
  80. 'if TRUE:\n'
  81. ' line1\n'
  82. 'if TRUE:\n'
  83. ' line2\n'
  84. 'line3\n',
  85. 'line1\n'
  86. 'line2\n'
  87. 'line3\n')
  88. yield (validate,
  89. 'if TRUE:\n'
  90. ' line1\n'
  91. 'line2\n'
  92. 'if TRUE:\n'
  93. ' line3\n',
  94. 'line1\n'
  95. 'line2\n'
  96. 'line3\n')
  97. yield (validate,
  98. 'if TRUE:\n'
  99. ' line1\n'
  100. 'if TRUE:\n'
  101. ' line2\n'
  102. 'if TRUE:\n'
  103. ' line3\n',
  104. 'line1\n'
  105. 'line2\n'
  106. 'line3\n')
  107. yield (validate,
  108. 'line1\n'
  109. 'if TRUE:\n'
  110. ' line2\n'
  111. 'if TRUE:\n'
  112. ' line3\n',
  113. 'line1\n'
  114. 'line2\n'
  115. 'line3\n')
  116. def test_no():
  117. yield (validate,
  118. 'if FALSE:\n'
  119. ' line1\n'
  120. 'line2\n'
  121. 'line3\n',
  122. 'line2\n'
  123. 'line3\n')
  124. yield (validate,
  125. 'if FALSE:\n'
  126. ' line1\n'
  127. ' line2\n'
  128. 'line3\n',
  129. 'line3\n')
  130. yield (validate,
  131. 'if FALSE:\n'
  132. ' line1\n'
  133. ' line2\n'
  134. ' line3\n',
  135. '')
  136. yield (validate,
  137. 'line1\n'
  138. 'if FALSE:\n'
  139. ' line2\n'
  140. 'line3\n',
  141. 'line1\n'
  142. 'line3\n')
  143. yield (validate,
  144. 'line1\n'
  145. 'if FALSE:\n'
  146. ' line2\n'
  147. ' line3\n',
  148. 'line1\n')
  149. yield (validate,
  150. 'line1\n'
  151. 'line2\n'
  152. 'if FALSE:\n'
  153. ' line3\n',
  154. 'line1\n'
  155. 'line2\n')
  156. yield (validate,
  157. 'if FALSE:\n'
  158. ' line1\n'
  159. 'if FALSE:\n'
  160. ' line2\n'
  161. 'line3\n',
  162. 'line3\n')
  163. yield (validate,
  164. 'if FALSE:\n'
  165. ' line1\n'
  166. 'line2\n'
  167. 'if FALSE:\n'
  168. ' line3\n',
  169. 'line2\n')
  170. yield (validate,
  171. 'if FALSE:\n'
  172. ' line1\n'
  173. 'if FALSE:\n'
  174. ' line2\n'
  175. 'if FALSE:\n'
  176. ' line3\n',
  177. '')
  178. yield (validate,
  179. 'line1\n'
  180. 'if FALSE:\n'
  181. ' line2\n'
  182. 'if FALSE:\n'
  183. ' line3\n',
  184. 'line1\n')
  185. def test_unknown():
  186. yield (validate,
  187. 'line1\n'
  188. 'if UNKNOWN:\n'
  189. ' line2\n'
  190. 'line3\n',
  191. 'line1\n'
  192. 'if UNKNOWN:\n'
  193. ' line2\n'
  194. 'line3\n')
  195. yield (validate,
  196. 'if UNKNOWN:\n'
  197. ' line1\n'
  198. 'if UNKNOWN:\n'
  199. ' line2\n'
  200. 'if UNKNOWN:\n'
  201. ' line3\n',
  202. 'if UNKNOWN:\n'
  203. ' line1\n'
  204. 'if UNKNOWN:\n'
  205. ' line2\n'
  206. 'if UNKNOWN:\n'
  207. ' line3\n')
  208. def test_yes_else():
  209. yield (validate,
  210. 'if TRUE:\n'
  211. ' line1\n'
  212. 'else:\n'
  213. ' line2\n'
  214. 'line3\n',
  215. 'line1\n'
  216. 'line3\n')
  217. yield (validate,
  218. 'if TRUE:\n'
  219. ' line1\n'
  220. ' line2\n'
  221. 'else:\n'
  222. ' line3\n',
  223. 'line1\n'
  224. 'line2\n')
  225. yield (validate,
  226. 'line1\n'
  227. 'if TRUE:\n'
  228. ' line2\n'
  229. 'else:\n'
  230. ' line3\n',
  231. 'line1\n'
  232. 'line2\n')
  233. yield (validate,
  234. 'if TRUE:\n'
  235. ' line1\n'
  236. 'if TRUE:\n'
  237. ' line2\n'
  238. 'else:\n'
  239. ' line3\n',
  240. 'line1\n'
  241. 'line2\n')
  242. yield (validate,
  243. 'if TRUE:\n'
  244. ' line1\n'
  245. 'else:\n'
  246. ' line2\n'
  247. 'if TRUE:\n'
  248. ' line3\n',
  249. 'line1\n'
  250. 'line3\n')
  251. def test_no_else():
  252. yield (validate,
  253. 'if FALSE:\n'
  254. ' line1\n'
  255. 'else:\n'
  256. ' line2\n'
  257. 'line3\n',
  258. 'line2\n'
  259. 'line3\n')
  260. yield (validate,
  261. 'if FALSE:\n'
  262. ' line1\n'
  263. ' line2\n'
  264. 'else:\n'
  265. ' line3\n',
  266. 'line3\n')
  267. yield (validate,
  268. 'line1\n'
  269. 'if FALSE:\n'
  270. ' line2\n'
  271. 'else:\n'
  272. ' line3\n',
  273. 'line1\n'
  274. 'line3\n')
  275. yield (validate,
  276. 'if FALSE:\n'
  277. ' line1\n'
  278. 'if FALSE:\n'
  279. ' line2\n'
  280. 'else:\n'
  281. ' line3\n',
  282. 'line3\n')
  283. yield (validate,
  284. 'if FALSE:\n'
  285. ' line1\n'
  286. 'else:\n'
  287. ' line2\n'
  288. 'if FALSE:\n'
  289. ' line3\n',
  290. 'line2\n')
  291. def test_unknown_else():
  292. yield (validate,
  293. 'line1\n'
  294. 'if UNKNOWN:\n'
  295. ' line2\n'
  296. 'else:\n'
  297. ' line3\n'
  298. 'line4\n',
  299. 'line1\n'
  300. 'if UNKNOWN:\n'
  301. ' line2\n'
  302. 'else:\n'
  303. ' line3\n'
  304. 'line4\n')
  305. def test_elif():
  306. yield (validate,
  307. 'line1\n'
  308. 'if TRUE:\n'
  309. ' line2\n'
  310. 'elif TRUE:\n'
  311. ' line3\n'
  312. 'elif TRUE:\n'
  313. ' line4\n'
  314. 'else:\n'
  315. ' line5\n'
  316. 'line6\n',
  317. 'line1\n'
  318. 'line2\n'
  319. 'line6\n')
  320. yield (validate,
  321. 'line1\n'
  322. 'if TRUE:\n'
  323. ' line2\n'
  324. 'elif TRUE:\n'
  325. ' line3\n'
  326. 'elif FALSE:\n'
  327. ' line4\n'
  328. 'else:\n'
  329. ' line5\n'
  330. 'line6\n',
  331. 'line1\n'
  332. 'line2\n'
  333. 'line6\n')
  334. yield (validate,
  335. 'line1\n'
  336. 'if TRUE:\n'
  337. ' line2\n'
  338. 'elif TRUE:\n'
  339. ' line3\n'
  340. 'elif UNKNOWN:\n'
  341. ' line4\n'
  342. 'else:\n'
  343. ' line5\n'
  344. 'line6\n',
  345. 'line1\n'
  346. 'line2\n'
  347. 'line6\n')
  348. yield (validate,
  349. 'line1\n'
  350. 'if TRUE:\n'
  351. ' line2\n'
  352. 'elif FALSE:\n'
  353. ' line3\n'
  354. 'elif TRUE:\n'
  355. ' line4\n'
  356. 'else:\n'
  357. ' line5\n'
  358. 'line6\n',
  359. 'line1\n'
  360. 'line2\n'
  361. 'line6\n')
  362. yield (validate,
  363. 'line1\n'
  364. 'if TRUE:\n'
  365. ' line2\n'
  366. 'elif FALSE:\n'
  367. ' line3\n'
  368. 'elif FALSE:\n'
  369. ' line4\n'
  370. 'else:\n'
  371. ' line5\n'
  372. 'line6\n',
  373. 'line1\n'
  374. 'line2\n'
  375. 'line6\n')
  376. yield (validate,
  377. 'line1\n'
  378. 'if TRUE:\n'
  379. ' line2\n'
  380. 'elif FALSE:\n'
  381. ' line3\n'
  382. 'elif UNKNOWN:\n'
  383. ' line4\n'
  384. 'else:\n'
  385. ' line5\n'
  386. 'line6\n',
  387. 'line1\n'
  388. 'line2\n'
  389. 'line6\n')
  390. yield (validate,
  391. 'line1\n'
  392. 'if TRUE:\n'
  393. ' line2\n'
  394. 'elif UNKNOWN:\n'
  395. ' line3\n'
  396. 'elif TRUE:\n'
  397. ' line4\n'
  398. 'else:\n'
  399. ' line5\n'
  400. 'line6\n',
  401. 'line1\n'
  402. 'line2\n'
  403. 'line6\n')
  404. yield (validate,
  405. 'line1\n'
  406. 'if TRUE:\n'
  407. ' line2\n'
  408. 'elif UNKNOWN:\n'
  409. ' line3\n'
  410. 'elif FALSE:\n'
  411. ' line4\n'
  412. 'else:\n'
  413. ' line5\n'
  414. 'line6\n',
  415. 'line1\n'
  416. 'line2\n'
  417. 'line6\n')
  418. yield (validate,
  419. 'line1\n'
  420. 'if TRUE:\n'
  421. ' line2\n'
  422. 'elif UNKNOWN:\n'
  423. ' line3\n'
  424. 'elif UNKNOWN:\n'
  425. ' line4\n'
  426. 'else:\n'
  427. ' line5\n'
  428. 'line6\n',
  429. 'line1\n'
  430. 'line2\n'
  431. 'line6\n')
  432. yield (validate,
  433. 'line1\n'
  434. 'if FALSE:\n'
  435. ' line2\n'
  436. 'elif TRUE:\n'
  437. ' line3\n'
  438. 'elif TRUE:\n'
  439. ' line4\n'
  440. 'else:\n'
  441. ' line5\n'
  442. 'line6\n',
  443. 'line1\n'
  444. 'line3\n'
  445. 'line6\n')
  446. yield (validate,
  447. 'line1\n'
  448. 'if FALSE:\n'
  449. ' line2\n'
  450. 'elif TRUE:\n'
  451. ' line3\n'
  452. 'elif FALSE:\n'
  453. ' line4\n'
  454. 'else:\n'
  455. ' line5\n'
  456. 'line6\n',
  457. 'line1\n'
  458. 'line3\n'
  459. 'line6\n')
  460. yield (validate,
  461. 'line1\n'
  462. 'if FALSE:\n'
  463. ' line2\n'
  464. 'elif TRUE:\n'
  465. ' line3\n'
  466. 'elif UNKNOWN:\n'
  467. ' line4\n'
  468. 'else:\n'
  469. ' line5\n'
  470. 'line6\n',
  471. 'line1\n'
  472. 'line3\n'
  473. 'line6\n')
  474. yield (validate,
  475. 'line1\n'
  476. 'if FALSE:\n'
  477. ' line2\n'
  478. 'elif FALSE:\n'
  479. ' line3\n'
  480. 'elif TRUE:\n'
  481. ' line4\n'
  482. 'else:\n'
  483. ' line5\n'
  484. 'line6\n',
  485. 'line1\n'
  486. 'line4\n'
  487. 'line6\n')
  488. yield (validate,
  489. 'line1\n'
  490. 'if FALSE:\n'
  491. ' line2\n'
  492. 'elif FALSE:\n'
  493. ' line3\n'
  494. 'elif FALSE:\n'
  495. ' line4\n'
  496. 'else:\n'
  497. ' line5\n'
  498. 'line6\n',
  499. 'line1\n'
  500. 'line5\n'
  501. 'line6\n')
  502. yield (validate,
  503. 'line1\n'
  504. 'if FALSE:\n'
  505. ' line2\n'
  506. 'elif FALSE:\n'
  507. ' line3\n'
  508. 'elif UNKNOWN:\n'
  509. ' line4\n'
  510. 'else:\n'
  511. ' line5\n'
  512. 'line6\n',
  513. 'line1\n'
  514. 'if UNKNOWN:\n'
  515. ' line4\n'
  516. 'else:\n'
  517. ' line5\n'
  518. 'line6\n')
  519. yield (validate,
  520. 'line1\n'
  521. 'if FALSE:\n'
  522. ' line2\n'
  523. 'elif UNKNOWN:\n'
  524. ' line3\n'
  525. 'elif TRUE:\n'
  526. ' line4\n'
  527. 'else:\n'
  528. ' line5\n'
  529. 'line6\n',
  530. 'line1\n'
  531. 'if UNKNOWN:\n'
  532. ' line3\n'
  533. 'else:\n'
  534. ' line4\n'
  535. 'line6\n')
  536. yield (validate,
  537. 'line1\n'
  538. 'if FALSE:\n'
  539. ' line2\n'
  540. 'elif UNKNOWN:\n'
  541. ' line3\n'
  542. 'elif FALSE:\n'
  543. ' line4\n'
  544. 'else:\n'
  545. ' line5\n'
  546. 'line6\n',
  547. 'line1\n'
  548. 'if UNKNOWN:\n'
  549. ' line3\n'
  550. 'else:\n'
  551. ' line5\n'
  552. 'line6\n')
  553. yield (validate,
  554. 'line1\n'
  555. 'if FALSE:\n'
  556. ' line2\n'
  557. 'elif UNKNOWN:\n'
  558. ' line3\n'
  559. 'elif UNKNOWN:\n'
  560. ' line4\n'
  561. 'else:\n'
  562. ' line5\n'
  563. 'line6\n',
  564. 'line1\n'
  565. 'if UNKNOWN:\n'
  566. ' line3\n'
  567. 'elif UNKNOWN:\n'
  568. ' line4\n'
  569. 'else:\n'
  570. ' line5\n'
  571. 'line6\n')
  572. yield (validate,
  573. 'line1\n'
  574. 'if UNKNOWN:\n'
  575. ' line2\n'
  576. 'elif TRUE:\n'
  577. ' line3\n'
  578. 'elif TRUE:\n'
  579. ' line4\n'
  580. 'else:\n'
  581. ' line5\n'
  582. 'line6\n',
  583. 'line1\n'
  584. 'if UNKNOWN:\n'
  585. ' line2\n'
  586. 'else:\n'
  587. ' line3\n'
  588. 'line6\n')
  589. yield (validate,
  590. 'line1\n'
  591. 'if UNKNOWN:\n'
  592. ' line2\n'
  593. 'elif TRUE:\n'
  594. ' line3\n'
  595. 'elif FALSE:\n'
  596. ' line4\n'
  597. 'else:\n'
  598. ' line5\n'
  599. 'line6\n',
  600. 'line1\n'
  601. 'if UNKNOWN:\n'
  602. ' line2\n'
  603. 'else:\n'
  604. ' line3\n'
  605. 'line6\n')
  606. yield (validate,
  607. 'line1\n'
  608. 'if UNKNOWN:\n'
  609. ' line2\n'
  610. 'elif TRUE:\n'
  611. ' line3\n'
  612. 'elif UNKNOWN:\n'
  613. ' line4\n'
  614. 'else:\n'
  615. ' line5\n'
  616. 'line6\n',
  617. 'line1\n'
  618. 'if UNKNOWN:\n'
  619. ' line2\n'
  620. 'else:\n'
  621. ' line3\n'
  622. 'line6\n')
  623. yield (validate,
  624. 'line1\n'
  625. 'if UNKNOWN:\n'
  626. ' line2\n'
  627. 'elif FALSE:\n'
  628. ' line3\n'
  629. 'elif TRUE:\n'
  630. ' line4\n'
  631. 'else:\n'
  632. ' line5\n'
  633. 'line6\n',
  634. 'line1\n'
  635. 'if UNKNOWN:\n'
  636. ' line2\n'
  637. 'else:\n'
  638. ' line4\n'
  639. 'line6\n')
  640. yield (validate,
  641. 'line1\n'
  642. 'if UNKNOWN:\n'
  643. ' line2\n'
  644. 'elif FALSE:\n'
  645. ' line3\n'
  646. 'elif FALSE:\n'
  647. ' line4\n'
  648. 'else:\n'
  649. ' line5\n'
  650. 'line6\n',
  651. 'line1\n'
  652. 'if UNKNOWN:\n'
  653. ' line2\n'
  654. 'else:\n'
  655. ' line5\n'
  656. 'line6\n')
  657. yield (validate,
  658. 'line1\n'
  659. 'if UNKNOWN:\n'
  660. ' line2\n'
  661. 'elif FALSE:\n'
  662. ' line3\n'
  663. 'elif UNKNOWN:\n'
  664. ' line4\n'
  665. 'else:\n'
  666. ' line5\n'
  667. 'line6\n',
  668. 'line1\n'
  669. 'if UNKNOWN:\n'
  670. ' line2\n'
  671. 'elif UNKNOWN:\n'
  672. ' line4\n'
  673. 'else:\n'
  674. ' line5\n'
  675. 'line6\n')
  676. yield (validate,
  677. 'line1\n'
  678. 'if UNKNOWN:\n'
  679. ' line2\n'
  680. 'elif UNKNOWN:\n'
  681. ' line3\n'
  682. 'elif TRUE:\n'
  683. ' line4\n'
  684. 'else:\n'
  685. ' line5\n'
  686. 'line6\n',
  687. 'line1\n'
  688. 'if UNKNOWN:\n'
  689. ' line2\n'
  690. 'elif UNKNOWN:\n'
  691. ' line3\n'
  692. 'else:\n'
  693. ' line4\n'
  694. 'line6\n')
  695. yield (validate,
  696. 'line1\n'
  697. 'if UNKNOWN:\n'
  698. ' line2\n'
  699. 'elif UNKNOWN:\n'
  700. ' line3\n'
  701. 'elif FALSE:\n'
  702. ' line4\n'
  703. 'else:\n'
  704. ' line5\n'
  705. 'line6\n',
  706. 'line1\n'
  707. 'if UNKNOWN:\n'
  708. ' line2\n'
  709. 'elif UNKNOWN:\n'
  710. ' line3\n'
  711. 'else:\n'
  712. ' line5\n'
  713. 'line6\n')
  714. yield (validate,
  715. 'line1\n'
  716. 'if UNKNOWN:\n'
  717. ' line2\n'
  718. 'elif UNKNOWN:\n'
  719. ' line3\n'
  720. 'elif UNKNOWN:\n'
  721. ' line4\n'
  722. 'else:\n'
  723. ' line5\n'
  724. 'line6\n',
  725. 'line1\n'
  726. 'if UNKNOWN:\n'
  727. ' line2\n'
  728. 'elif UNKNOWN:\n'
  729. ' line3\n'
  730. 'elif UNKNOWN:\n'
  731. ' line4\n'
  732. 'else:\n'
  733. ' line5\n'
  734. 'line6\n')
  735. def test_nesting():
  736. yield (validate,
  737. 'line1\n'
  738. 'if TRUE:\n'
  739. ' line2\n'
  740. ' if TRUE:\n'
  741. ' line3\n'
  742. ' else:\n'
  743. ' line4\n'
  744. ' line5\n'
  745. 'else:\n'
  746. ' line6\n'
  747. 'line7\n',
  748. 'line1\n'
  749. 'line2\n'
  750. 'line3\n'
  751. 'line5\n'
  752. 'line7\n')
  753. yield (validate,
  754. 'line1\n'
  755. 'if TRUE:\n'
  756. ' line2\n'
  757. ' if FALSE:\n'
  758. ' line3\n'
  759. ' else:\n'
  760. ' line4\n'
  761. ' line5\n'
  762. 'else:\n'
  763. ' line6\n'
  764. 'line7\n',
  765. 'line1\n'
  766. 'line2\n'
  767. 'line4\n'
  768. 'line5\n'
  769. 'line7\n')
  770. yield (validate,
  771. 'line1\n'
  772. 'if TRUE:\n'
  773. ' line2\n'
  774. ' if UNKNOWN:\n'
  775. ' line3\n'
  776. ' else:\n'
  777. ' line4\n'
  778. ' line5\n'
  779. 'else:\n'
  780. ' line6\n'
  781. 'line7\n',
  782. 'line1\n'
  783. 'line2\n'
  784. 'if UNKNOWN:\n'
  785. ' line3\n'
  786. 'else:\n'
  787. ' line4\n'
  788. 'line5\n'
  789. 'line7\n')
  790. yield (validate,
  791. 'line1\n'
  792. 'if FALSE:\n'
  793. ' line2\n'
  794. ' if TRUE:\n'
  795. ' line3\n'
  796. ' else:\n'
  797. ' line4\n'
  798. ' line5\n'
  799. 'else:\n'
  800. ' line6\n'
  801. 'line7\n',
  802. 'line1\n'
  803. 'line6\n'
  804. 'line7\n')
  805. yield (validate,
  806. 'line1\n'
  807. 'if FALSE:\n'
  808. ' line2\n'
  809. ' if FALSE:\n'
  810. ' line3\n'
  811. ' else:\n'
  812. ' line4\n'
  813. ' line5\n'
  814. 'else:\n'
  815. ' line6\n'
  816. 'line7\n',
  817. 'line1\n'
  818. 'line6\n'
  819. 'line7\n')
  820. yield (validate,
  821. 'line1\n'
  822. 'if FALSE:\n'
  823. ' line2\n'
  824. ' if UNKNOWN:\n'
  825. ' line3\n'
  826. ' else:\n'
  827. ' line4\n'
  828. ' line5\n'
  829. 'else:\n'
  830. ' line6\n'
  831. 'line7\n',
  832. 'line1\n'
  833. 'line6\n'
  834. 'line7\n')
  835. yield (validate,
  836. 'line1\n'
  837. 'if UNKNOWN:\n'
  838. ' line2\n'
  839. ' if TRUE:\n'
  840. ' line3\n'
  841. ' else:\n'
  842. ' line4\n'
  843. ' line5\n'
  844. 'else:\n'
  845. ' line6\n'
  846. 'line7\n',
  847. 'line1\n'
  848. 'if UNKNOWN:\n'
  849. ' line2\n'
  850. ' line3\n'
  851. ' line5\n'
  852. 'else:\n'
  853. ' line6\n'
  854. 'line7\n')
  855. yield (validate,
  856. 'line1\n'
  857. 'if UNKNOWN:\n'
  858. ' line2\n'
  859. ' if FALSE:\n'
  860. ' line3\n'
  861. ' else:\n'
  862. ' line4\n'
  863. ' line5\n'
  864. 'else:\n'
  865. ' line6\n'
  866. 'line7\n',
  867. 'line1\n'
  868. 'if UNKNOWN:\n'
  869. ' line2\n'
  870. ' line4\n'
  871. ' line5\n'
  872. 'else:\n'
  873. ' line6\n'
  874. 'line7\n')
  875. yield (validate,
  876. 'line1\n'
  877. 'if UNKNOWN:\n'
  878. ' line2\n'
  879. ' if UNKNOWN:\n'
  880. ' line3\n'
  881. ' else:\n'
  882. ' line4\n'
  883. ' line5\n'
  884. 'else:\n'
  885. ' line6\n'
  886. 'line7\n',
  887. 'line1\n'
  888. 'if UNKNOWN:\n'
  889. ' line2\n'
  890. ' if UNKNOWN:\n'
  891. ' line3\n'
  892. ' else:\n'
  893. ' line4\n'
  894. ' line5\n'
  895. 'else:\n'
  896. ' line6\n'
  897. 'line7\n')
  898. def test_regression():
  899. yield (validate,
  900. 'if TRUE:\n'
  901. ' line1\n'
  902. 'else:\n'
  903. ' line2\n'
  904. ' if FALSE:\n'
  905. ' line3\n'
  906. ' else:\n'
  907. ' line4\n'
  908. ' line5\n'
  909. 'line6\n',
  910. 'line1\n'
  911. 'line6\n')