def test_omit_with_filter(self): html_in = self.ET.fromstring(u'''\ <div class="forum-post"> <div class="author"><a href="/user/lǎowài">lǎowài</a></div> <div class="content"> ... теперь выбираем цвета, и скачиваем ещё один архивчик: <ul> <li>(百闻不如一见 bǎiwén bùrú yījiàn)<br /> mandarin.css.zip (Размер: 242 байт / Загрузок: 59)</li> </ul> </div> <div class="reply"><input type="button" value="new reply" /></div> </div>''') html_expected = self.ET.tostring(self.ET.fromstring(u'''\ <div class="forum-post"> <div class="author"><a href="/user/lǎowài">lǎowài</a></div> <div class="content"> ... теперь выбираем цвета, и скачиваем ещё один архивчик: <ul> <li><span class="pinYinWrapper">(百闻不如一见 <span class="t3">bǎi</span><span class="t2">wén</span> <span class="t4">bù</span><span class="t2">rú</span> <span class="t1">yī</span><span class="t4">jiàn</span>)</span><br /> mandarin.css.zip (Размер: 242 байт / Загрузок: 59)</li> </ul> </div> <div class="reply"><input type="button" value="new reply" /></div> </div>'''), encoding='unicode') color.colorize_DOM(html_in) html_out = self.ET.tostring(html_in, encoding='unicode') self.assertEqual(html_out, html_expected)
def test_back_and_forth(self): html = u'''<div class="not_full"><div>有规律性的 yǒu guīlǜxìng-de; (<i>во времени</i>) 定期[的] dìngqí[de], 定时[的] dìngshí[de], 按时的 ànshíde; 经常[的] jīngcháng[de]</div> <div class="m2"><div class="ex">регулярная жизнь - 有规律的生活</div></div> <div class="m2"><div class="ex">регулярный рейс самолёта - 飞机定期班次</div></div> <div class="hidden_text" style="display: block;"><div class="m2"><div class="ex">регулярный доход - 经常的收入</div></div> <div class="m2"><div class="ex"><div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярная армия">регулярная армия</a></div> <div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярные войска">регулярные войска</a></div></div> <div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярное выражение">регулярное выражение</a></div></div> </div> </div>''' self.assertEqual(html, self.ET.tostring(self.ET.fromstring(html), encoding='unicode')) el = self.ET.fromstring(html) color.colorize_DOM(el) color.uncolorize_DOM(el) self.assertEqual(html, self.ET.tostring(el, encoding='unicode'))
def test_custom_class(self): html_in = self.ET.fromstring( u'''<div class="ex">很长的过程 [hěn chángde guòchéng] - очень длительный процесс</div>''' ) html_expected = self.ET.tostring(self.ET.fromstring( u'''<div class="ex"><span class="py">很长的过程 [<span class="third">hěn</span> <span class="second">cháng</span><span class="zero">de</span> <span class="forth">guò</span><span class="second">chéng</span>] - очень длительный процесс</span></div>''' ), encoding='unicode') color.colorize_DOM(html_in, None, 'py', ('zero', 'first', 'second', 'third', 'forth')) html_out = self.ET.tostring(html_in, encoding='unicode') self.assertEqual(html_out, html_expected)
def test_back_and_forth(self): html = u'''<div class="not_full"><div>有规律性的 yǒu guīlǜxìng-de; (<i>во времени</i>) 定期[的] dìngqí[de], 定时[的] dìngshí[de], 按时的 ànshíde; 经常[的] jīngcháng[de]</div> <div class="m2"><div class="ex">регулярная жизнь - 有规律的生活</div></div> <div class="m2"><div class="ex">регулярный рейс самолёта - 飞机定期班次</div></div> <div class="hidden_text" style="display: block;"><div class="m2"><div class="ex">регулярный доход - 经常的收入</div></div> <div class="m2"><div class="ex"><div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярная армия">регулярная армия</a></div> <div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярные войска">регулярные войска</a></div></div> <div class="m2">- <a href="http://bkrs.info/slovo.php?ch=регулярное выражение">регулярное выражение</a></div></div> </div> </div>''' self.assertEqual( html, self.ET.tostring(self.ET.fromstring(html), encoding='unicode')) el = self.ET.fromstring(html) color.colorize_DOM(el) color.uncolorize_DOM(el) self.assertEqual(html, self.ET.tostring(el, encoding='unicode'))
def test_bkrs_ch_ru(self): html_in = self.ET.fromstring(u'''<div class="ch_ru"><div>1) 从属[的] cóngshǔ[de]</div> <div class="m2"><div class="ex">функциональные отношения - 从属关系</div></div> <div>2) 机能[的] jīnéng[de], 宫能[的] guānnéng[-de]; 职能[的] zhínéng[de]</div> <div class="m2"><div class="ex">функциональное заболевание - 官能[性]病</div></div> <div class="m2"><div class="ex">функциональная ценность денег - 货币的职能价值</div></div> <div>3) <i class="green">мат.</i> 函数[的] hánshù[de], 函数式[的] hánshùshì[de]</div> </div>''') html_expected = self.ET.tostring(self.ET.fromstring(u'''<div class="ch_ru"><div><span class="pinYinWrapper">1) 从属[的] <span class="t2">cóng</span><span class="t3">shǔ</span>[<span class="t0">de</span>]</span></div> <div class="m2"><div class="ex">функциональные отношения - 从属关系</div></div> <div><span class="pinYinWrapper">2) 机能[的] <span class="t1">jī</span><span class="t2">néng</span>[<span class="t0">de</span>], 宫能[的] <span class="t1">guān</span><span class="t2">néng</span>[-<span class="t0">de</span>]; 职能[的] <span class="t2">zhí</span><span class="t2">néng</span>[<span class="t0">de</span>]</span></div> <div class="m2"><div class="ex">функциональное заболевание - 官能[性]病</div></div> <div class="m2"><div class="ex">функциональная ценность денег - 货币的职能价值</div></div> <div>3) <i class="green">мат.</i><span class="pinYinWrapper"> 函数[的] <span class="t2">hán</span><span class="t4">shù</span>[<span class="t0">de</span>], 函数式[的] <span class="t2">hán</span><span class="t4">shù</span><span class="t4">shì</span>[<span class="t0">de</span>]</span></div> </div>'''), encoding='unicode') color.colorize_DOM(html_in) html_out = self.ET.tostring(html_in, encoding='unicode') self.assertEqual(html_out, html_expected)
def test_bkrs_ch_ru(self): html_in = self.ET.fromstring( u'''<div class="ch_ru"><div>1) 从属[的] cóngshǔ[de]</div> <div class="m2"><div class="ex">функциональные отношения - 从属关系</div></div> <div>2) 机能[的] jīnéng[de], 宫能[的] guānnéng[-de]; 职能[的] zhínéng[de]</div> <div class="m2"><div class="ex">функциональное заболевание - 官能[性]病</div></div> <div class="m2"><div class="ex">функциональная ценность денег - 货币的职能价值</div></div> <div>3) <i class="green">мат.</i> 函数[的] hánshù[de], 函数式[的] hánshùshì[de]</div> </div>''') html_expected = self.ET.tostring(self.ET.fromstring( u'''<div class="ch_ru"><div><span class="pinYinWrapper">1) 从属[的] <span class="t2">cóng</span><span class="t3">shǔ</span>[<span class="t0">de</span>]</span></div> <div class="m2"><div class="ex">функциональные отношения - 从属关系</div></div> <div><span class="pinYinWrapper">2) 机能[的] <span class="t1">jī</span><span class="t2">néng</span>[<span class="t0">de</span>], 宫能[的] <span class="t1">guān</span><span class="t2">néng</span>[-<span class="t0">de</span>]; 职能[的] <span class="t2">zhí</span><span class="t2">néng</span>[<span class="t0">de</span>]</span></div> <div class="m2"><div class="ex">функциональное заболевание - 官能[性]病</div></div> <div class="m2"><div class="ex">функциональная ценность денег - 货币的职能价值</div></div> <div>3) <i class="green">мат.</i><span class="pinYinWrapper"> 函数[的] <span class="t2">hán</span><span class="t4">shù</span>[<span class="t0">de</span>], 函数式[的] <span class="t2">hán</span><span class="t4">shù</span><span class="t4">shì</span>[<span class="t0">de</span>]</span></div> </div>'''), encoding='unicode') color.colorize_DOM(html_in) html_out = self.ET.tostring(html_in, encoding='unicode') self.assertEqual(html_out, html_expected)
def test_custom_class(self): html_in = self.ET.fromstring(u'''<div class="ex">很长的过程 [hěn chángde guòchéng] - очень длительный процесс</div>''') html_expected = self.ET.tostring(self.ET.fromstring(u'''<div class="ex"><span class="py">很长的过程 [<span class="third">hěn</span> <span class="second">cháng</span><span class="zero">de</span> <span class="forth">guò</span><span class="second">chéng</span>] - очень длительный процесс</span></div>'''), encoding='unicode') color.colorize_DOM(html_in, None, 'py', ('zero', 'first', 'second', 'third', 'forth')) html_out = self.ET.tostring(html_in, encoding='unicode') self.assertEqual(html_out, html_expected)