quixote/test test_html.py,NONE,1.1
Neil Schemenauer <nascheme-fVcApmY9cLvQ3/1i3zOLAti2O/[email protected]>
| Newsgroups | gmane.comp.web.quixote.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /home/cvs/quixote/test
In directory hewson:/tmp/cvs-serv1948/test
Added Files:
test_html.py
Log Message:
Basic tests for htmltext and htmlescape.
--- NEW FILE: test_html.py ---
from sancho.unittest import TestScenario, parse_args, run_scenarios
from quixote.html import htmltext, htmlescape
tested_modules = [ "quixote.html" ]
class Wrapper:
def __init__ (self, s):
self.s = s
def __repr__ (self):
return self.s
def __str__ (self):
return self.s
markupchars = '<>&"'
quotedchars = '<>&"'
class HTMLTest (TestScenario):
def setup (self):
pass
def shutdown (self):
pass
def check_init (self):
self.test_val("str(htmltext('foo'))", 'foo')
self.test_val("str(htmltext(markupchars))", markupchars)
self.test_val("str(htmltext(None))", 'None')
self.test_val("str(htmltext(1))", '1')
def check_quote (self):
self.test_val("htmlescape(markupchars)", quotedchars)
self.test_val("htmltext.quote(markupchars)", quotedchars)
self.test_val("htmlescape(htmlescape(markupchars))", quotedchars)
def check_cmp (self):
s = htmltext("foo")
self.test_bool("s == 'foo'")
self.test_bool("s != 'bar'")
def check_len (self):
self.test_val("len(htmltext('foo'))", 3)
self.test_val("len(htmltext(markupchars))", len(markupchars))
self.test_val("len(htmlescape(markupchars))", len(quotedchars))
def check_hash (self):
self.test_val("hash(htmltext('foo'))", hash('foo'))
self.test_val("hash(htmltext(markupchars))", hash(markupchars))
self.test_val("hash(htmlescape(markupchars))", hash(quotedchars))
def check_concat (self):
s = htmltext("foo")
self.test_val("s + 'bar'", "foobar")
self.test_val("'bar' + s", "barfoo")
self.test_val("s + htmltext('bar')", "foobar")
self.test_val("s + markupchars", "foo" + quotedchars)
self.test_val("markupchars + s", quotedchars + "foo")
def check_repeat (self):
self.test_val("htmltext('a') * 3", "aaa")
self.test_val("htmlescape(markupchars) * 3", quotedchars * 3)
def check_format (self):
self.test_val("htmltext('%s') % 'foo'", "foo")
self.test_val("htmltext('%s') % markupchars", quotedchars)
self.test_val("htmltext('%s') % None", "None")
self.test_val("htmltext('%r') % Wrapper(markupchars)", quotedchars)
self.test_val("htmltext('%s%s') % ('foo', htmltext(markupchars))",
"foo" + markupchars)
self.test_val("htmltext('%d') % 10", "10")
self.test_val("htmltext('%.1f') % 10", "10.0")
def check_dict_format (self):
self.test_val("htmltext('%(a)s %(a)r %(b)s') % "
" {'a': 'foo', 'b': htmltext('bar')}", "foo 'foo' bar")
def check_join (self):
self.test_val("htmltext(' ').join(['foo', 'bar'])", "foo bar")
self.test_val("htmltext(' ').join(['foo', markupchars])",
"foo " + quotedchars)
self.test_val("htmlescape(markupchars).join(['foo', 'bar'])",
"foo" + quotedchars + "bar")
self.test_val("htmltext(' ').join([htmltext(markupchars), 'bar'])",
markupchars + " bar")
def check_startswith (self):
self.test_bool("htmltext('foo').startswith('fo')")
self.test_bool("htmlescape(markupchars).startswith(markupchars[:3])")
self.test_bool("htmltext(markupchars).startswith("
" htmltext(markupchars[:3]))")
def check_endswith (self):
self.test_bool("htmltext('foo').endswith('oo')")
self.test_bool("htmlescape(markupchars).endswith(markupchars[-3:])")
self.test_bool("htmltext(markupchars).endswith("
" htmltext(markupchars[-3:]))")
def check_replace (self):
self.test_val("htmlescape('&').replace('&', 'foo')", "foo")
self.test_val("htmltext('&').replace(htmltext('&'), 'foo')", "foo")
self.test_val("htmltext('foo').replace('foo', htmltext('&'))", "&")
if __name__ == "__main__":
(scenarios, options) = parse_args()
run_scenarios (scenarios, options)