# -*- coding: utf-8 -*-
import unittest
import re
import p3

class P3Tester(unittest.TestCase):
    def eatWhitespace(self, text):
        return re.sub(r'\s+', '', text)

    def test_sample(self):
        wikiText = """== Дефиниция ==
*Питон* (англ. _Python_, произнася се _Пайтън_) е интерпретируем, интерактивен, обектно-ориентиран език за програмиране, създаден от [http://www.python.org/~guido/ Гуидо ван Росум] в началото на 90-те години. Кръстен е на телевизионното шоу на BBC Monty Python’s Flying Circus. Често бива сравняван с Tcl, Perl, Scheme, Java и Ruby.

Питон предлага добра структура и поддръжка за разработка на големи приложения. Той притежава вградени сложни типове данни като гъвкави масиви и речници, за които биха били необходими дни, за да се напишат ефикасно на C. За разлика от Perl, мистичната променлива _ отсъства. Нито може да ползвате * за глобове.


 === Малко разяснения на *Python* ===

Питон позволява разделянето на една програма на модули, които могат да се използват отново в други програми. Също така притежава голям набор от стандартни модули, които да се използват като основа на програмите. Съществуват и вградени модули, които обезпечават такива неща като файлов вход/изход (I/O), различни системни функции, сокети (_sockets_), програмни интерфейси към GUI-библиотеки като Тк, както и много други.

== Връзки ==
Можете да намерите повече информация на следните места:

python@example.org
http://fmi.py-bg.net/
http://python.org/"""
        expectedHTML = """<h2>Дефиниция</h2>
<p><strong>Питон</strong> (англ. <em>Python</em>, произнася се <em>Пайтън</em>) е интерпретируем, интерактивен, обектно-ориентиран език за програмиране, създаден от <a href="http://www.python.org/~guido/">Гуидо ван Росум</a> в началото на 90-те години. Кръстен е на телевизионното шоу на BBC Monty Python’s Flying Circus. Често бива сравняван с Tcl, Perl, Scheme, Java и Ruby.</p>
<p>Питон предлага добра структура и поддръжка за разработка на големи приложения. Той притежава вградени сложни типове данни като гъвкави масиви и речници, за които биха били необходими дни, за да се напишат ефикасно на C. За разлика от Perl, мистичната променлива _ отсъства. Нито може да ползвате * за глобове.</p>
<h3>Малко разяснения на <strong>Python</strong></h3>
<p>Питон позволява разделянето на една програма на модули, които могат да се използват отново в други програми. Също така притежава голям набор от стандартни модули, които да се използват като основа на програмите. Съществуват и вградени модули, които обезпечават такива неща като файлов вход/изход (I/O), различни системни функции, сокети (<em>sockets</em>), програмни интерфейси към GUI-библиотеки като Тк, както и много други.</p>
<h2>Връзки</h2>
<p>Можете да намерите повече информация на следните места:</p>
<p><a href="mailto:python@example.org">python@example.org</a><br />
<a href="http://fmi.py-bg.net/">http://fmi.py-bg.net/</a><br />
<a href="http://python.org/">http://python.org/</a></p>"""
        self.assertEqual(self.eatWhitespace(expectedHTML), self.eatWhitespace(p3.wiki(wikiText)))

if __name__ == '__main__':
    unittest.main()
