def test2 (self): src = ur"""<UL><LI>Несортированный список. Элемент 1</LI><LI>Несортированный список. Элемент 2</LI><LI>Несортированный список. Элемент 3</LI><OL><LI>Вложенный сортированный список. Элемент 1</LI><LI>Вложенный сортированный список. Элемент 2</LI><LI>Вложенный сортированный список. Элемент 3</LI><LI>Вложенный сортированный список. Элемент 4</LI><UL><LI>Совсем вложенный сортированный список. Элемент 1</LI><LI>Совсем вложенный сортированный список. Элемент 2</LI></UL><LI>Вложенный сортированный список. Элемент 5</LI></OL><UL><LI>Вложенный несортированный список. Элемент 1</LI></UL></UL>""" expectedResult = ur""" <UL> <LI>Несортированный список. Элемент 1</LI> <LI>Несортированный список. Элемент 2</LI> <LI>Несортированный список. Элемент 3</LI> <OL> <LI>Вложенный сортированный список. Элемент 1</LI> <LI>Вложенный сортированный список. Элемент 2</LI> <LI>Вложенный сортированный список. Элемент 3</LI> <LI>Вложенный сортированный список. Элемент 4</LI> <UL> <LI>Совсем вложенный сортированный список. Элемент 1</LI> <LI>Совсем вложенный сортированный список. Элемент 2</LI> </UL> <LI>Вложенный сортированный список. Элемент 5</LI> </OL> <UL> <LI>Вложенный несортированный список. Элемент 1</LI> </UL> </UL>""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result, result)
def test3 (self): src = ur"""qweqweqw qweqwe<BR>qwewqeqwe wqe<P>qweqweqw qwe qweqwe<PRE> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</PRE><P>sdfsdf sdfsdf<BR>sdfsdf<BR>sdf sdfsdf sdf""" expectedResult = ur"""qweqweqw qweqwe <BR>qwewqeqwe wqe</P> <P>qweqweqw qwe qweqwe <PRE> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</PRE></P> <P>sdfsdf sdfsdf <BR>sdfsdf <BR>sdf sdfsdf sdf""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result, result)
def test3 (self): src = ur"""qweqweqw qweqwe<br>qwewqeqwe wqe<p>qweqweqw qwe qweqwe<pre> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</pre><p>sdfsdf sdfsdf<br>sdfsdf<br>sdf sdfsdf sdf""" expectedResult = ur"""qweqweqw qweqwe <br>qwewqeqwe wqe</p> <p>qweqweqw qwe qweqwe <pre> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</pre></p> <p>sdfsdf sdfsdf <br>sdfsdf <br>sdf sdfsdf sdf""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result, result)
def makeHtml (self, stylepath): path = self.getResultPath() if self.canReadFromCache(): return path factory = ParserFactory () parser = factory.make(self.page, Application.config) content = self.page.content if len (self.page.content) > 0 else self._generateEmptyContent (parser) text = HtmlImprover.run (parser.toHtml (content) ) head = parser.head tpl = HtmlTemplate (stylepath) result = tpl.substitute (content=text, userhead=head) with open (path, "wb") as fp: fp.write (result.encode ("utf-8")) try: self._getHashOption().value = self.getHash() except IOError: # Не самая страшная потеря, если не сохранится хэш. # Максимум, что грозит пользователю, каждый раз генерить старницу pass return path
def test2 (self): src = ur"""<ul><li>Несортированный список. Элемент 1</li><li>Несортированный список. Элемент 2</li><li>Несортированный список. Элемент 3</li><ol><li>Вложенный сортированный список. Элемент 1</li><li>Вложенный сортированный список. Элемент 2</li><li>Вложенный сортированный список. Элемент 3</li><li>Вложенный сортированный список. Элемент 4</li><ul><li>Совсем вложенный сортированный список. Элемент 1</li><li>Совсем вложенный сортированный список. Элемент 2</li></ul><li>Вложенный сортированный список. Элемент 5</li></ol><ul><li>Вложенный несортированный список. Элемент 1</li></ul></ul>""" expectedResult = ur""" <ul> <li>Несортированный список. Элемент 1</li> <li>Несортированный список. Элемент 2</li> <li>Несортированный список. Элемент 3</li> <ol> <li>Вложенный сортированный список. Элемент 1</li> <li>Вложенный сортированный список. Элемент 2</li> <li>Вложенный сортированный список. Элемент 3</li> <li>Вложенный сортированный список. Элемент 4</li> <ul> <li>Совсем вложенный сортированный список. Элемент 1</li> <li>Совсем вложенный сортированный список. Элемент 2</li> </ul> <li>Вложенный сортированный список. Элемент 5</li> </ol> <ul> <li>Вложенный несортированный список. Элемент 1</li> </ul> </ul>""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result, result)
def generateHtml (self, page): path = self.getHtmlPath (page) if page.readonly and os.path.exists (path): # Если страница открыта только для чтения и html-файл уже существует, то покажем его return path style = Style() stylepath = style.getPageStyle (page) try: tpl = HtmlTemplate (stylepath) except: MessageBox (_(u"Page style Error. Style by default is used"), _(u"Error"), wx.ICON_ERROR | wx.OK) tpl = HtmlTemplate (style.getDefaultStyle()) if page.autoLineWrap: text = HtmlImprover.run (page.content) text = re.sub ("\n<br>\n(<li>)|(<li>)", "\n<LI>", text) else: text = page.content result = tpl.substitute (content=text) with open (path, "wb") as fp: fp.write (result.encode ("utf-8")) return path
def testImproved1 (self): src = u"""<ul><li>Несортированный список. Элемент 1</li><li>Несортированный список. Элемент 2</li><li>Несортированный список. Элемент 3</li><ol><li>Вложенный сортированный список. Элемент 1</li><li>Вложенный сортированный список. Элемент 2</li><li>Вложенный сортированный список. Элемент 3</li><li>Вложенный сортированный список. Элемент 4</li><ul><li>Совсем вложенный сортированный список. Элемент 1</li><li>Совсем вложенный сортированный список. Элемент 2</li></ul><li>Вложенный сортированный список. Элемент 5</li></ol><ul><li>Вложенный несортированный список. Элемент 1</li></ul></ul>""" expectedResult = u"""<!DOCTYPE html> <html> <head> <meta http-equiv='X-UA-Compatible' content='IE=edge' /> <meta http-equiv='content-type' content='text/html; charset=utf-8'/> <style type='text/css'> body, div, p, table { font-size:10pt; font-family:Verdana; } img{border:none} </style> </head> <body> <p> <ul> <li>Несортированный список. Элемент 1</li> <li>Несортированный список. Элемент 2</li> <li>Несортированный список. Элемент 3</li> <ol> <li>Вложенный сортированный список. Элемент 1</li> <li>Вложенный сортированный список. Элемент 2</li> <li>Вложенный сортированный список. Элемент 3</li> <li>Вложенный сортированный список. Элемент 4</li> <ul> <li>Совсем вложенный сортированный список. Элемент 1</li> <li>Совсем вложенный сортированный список. Элемент 2</li> </ul> <li>Вложенный сортированный список. Элемент 5</li> </ol> <ul> <li>Вложенный несортированный список. Элемент 1</li> </ul> </ul></p> </body> </html>""" templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html") tpl = HtmlTemplate (templatepath) result = tpl.substitute (HtmlImprover.run (src) ) self.assertEqual (expectedResult, result, result)
def testImproved1 (self): src = u"""<UL><LI>Несортированный список. Элемент 1</LI><LI>Несортированный список. Элемент 2</LI><LI>Несортированный список. Элемент 3</LI><OL><LI>Вложенный сортированный список. Элемент 1</LI><LI>Вложенный сортированный список. Элемент 2</LI><LI>Вложенный сортированный список. Элемент 3</LI><LI>Вложенный сортированный список. Элемент 4</LI><UL><LI>Совсем вложенный сортированный список. Элемент 1</LI><LI>Совсем вложенный сортированный список. Элемент 2</LI></UL><LI>Вложенный сортированный список. Элемент 5</LI></OL><UL><LI>Вложенный несортированный список. Элемент 1</LI></UL></UL>""" expectedResult = u"""<!DOCTYPE html> <HTML> <HEAD> <META HTTP-EQUIV='X-UA-Compatible' CONTENT='IE=edge' /> <META HTTP-EQUIV='CONTENT-TYPE' CONTENT='TEXT/HTML; CHARSET=UTF-8'/> <STYLE type='text/css'> body, div, p, table { font-size:10pt; font-family:Verdana; } img{border:none} </STYLE> </HEAD> <BODY> <P> <UL> <LI>Несортированный список. Элемент 1</LI> <LI>Несортированный список. Элемент 2</LI> <LI>Несортированный список. Элемент 3</LI> <OL> <LI>Вложенный сортированный список. Элемент 1</LI> <LI>Вложенный сортированный список. Элемент 2</LI> <LI>Вложенный сортированный список. Элемент 3</LI> <LI>Вложенный сортированный список. Элемент 4</LI> <UL> <LI>Совсем вложенный сортированный список. Элемент 1</LI> <LI>Совсем вложенный сортированный список. Элемент 2</LI> </UL> <LI>Вложенный сортированный список. Элемент 5</LI> </OL> <UL> <LI>Вложенный несортированный список. Элемент 1</LI> </UL> </UL></P> </BODY> </HTML>""" templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html") tpl = HtmlTemplate (templatepath) result = tpl.substitute (HtmlImprover.run (src) ) self.assertEqual (expectedResult, result, result)
def test1 (self): src = ur"""<H2>Attach links</H2><P>Attach:file.odt<BR><A HREF="__attach/file.odt">file.odt</A><BR><A HREF="__attach/file.odt">alternative text</A><BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A><P><H2>Images</H2>""" expectedResult = ur""" <H2>Attach links</H2></P> <P>Attach:file.odt <BR><A HREF="__attach/file.odt">file.odt</A> <BR><A HREF="__attach/file.odt">alternative text</A> <BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A></P> <P> <H2>Images</H2>""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result)
def test1 (self): src = ur"""<h2>Attach links</h2><p>Attach:file.odt<br><a href="__attach/file.odt">file.odt</a><br><a href="__attach/file.odt">alternative text</a><br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a><p><h2>Images</h2>""" expectedResult = ur""" <h2>Attach links</h2></p> <p>Attach:file.odt <br><a href="__attach/file.odt">file.odt</a> <br><a href="__attach/file.odt">alternative text</a> <br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a></p> <p> <h2>Images</h2>""" result = HtmlImprover.run (src) self.assertEqual (expectedResult, result)
def testImproved2 (self): src = ur"""<h2>Attach links</h2><p>Attach:file.odt<br><a href="__attach/file.odt">file.odt</a><br><a href="__attach/file.odt">alternative text</a><br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a><p><h2>Images</h2>""" expectedResult = ur"""<!DOCTYPE html> <html> <head> <meta http-equiv='X-UA-Compatible' content='IE=edge' /> <meta http-equiv='content-type' content='text/html; charset=utf-8'/> <style type='text/css'> body, div, p, table { font-size:10pt; font-family:Verdana; } img{border:none} </style> </head> <body> <p> <h2>Attach links</h2></p> <p>Attach:file.odt <br><a href="__attach/file.odt">file.odt</a> <br><a href="__attach/file.odt">alternative text</a> <br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a></p> <p> <h2>Images</h2></p> </body> </html>""" templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html") tpl = HtmlTemplate (templatepath) result = tpl.substitute (HtmlImprover.run (src) ) self.assertEqual (expectedResult, result)
def testImproved2 (self): src = ur"""<H2>Attach links</H2><P>Attach:file.odt<BR><A HREF="__attach/file.odt">file.odt</A><BR><A HREF="__attach/file.odt">alternative text</A><BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A><P><H2>Images</H2>""" expectedResult = ur"""<!DOCTYPE html> <HTML> <HEAD> <META HTTP-EQUIV='X-UA-Compatible' CONTENT='IE=edge' /> <META HTTP-EQUIV='CONTENT-TYPE' CONTENT='TEXT/HTML; CHARSET=UTF-8'/> <STYLE type='text/css'> body, div, p, table { font-size:10pt; font-family:Verdana; } img{border:none} </STYLE> </HEAD> <BODY> <P> <H2>Attach links</H2></P> <P>Attach:file.odt <BR><A HREF="__attach/file.odt">file.odt</A> <BR><A HREF="__attach/file.odt">alternative text</A> <BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A></P> <P> <H2>Images</H2></P> </BODY> </HTML>""" templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html") tpl = HtmlTemplate (templatepath) result = tpl.substitute (HtmlImprover.run (src) ) self.assertEqual (expectedResult, result)