diff --git a/linkcheck/tests/test_containers.py b/linkcheck/tests/test_containers.py
index b2100536..f954440a 100644
--- a/linkcheck/tests/test_containers.py
+++ b/linkcheck/tests/test_containers.py
@@ -76,6 +76,38 @@ class TestListDict (tests.StandardTest):
self.d[x] = x
for i, k in enumerate(self.d.keys()):
self.assertEqual(self.d[k], toinsert[i])
+ for i, k in enumerate(self.d.iterkeys()):
+ self.assertEqual(self.d[k], toinsert[i])
+ for x in self.d.values():
+ self.assert_(x in toinsert)
+ for x in self.d.itervalues():
+ self.assert_(x in toinsert)
+ for x, y in self.d.items():
+ self.assert_(x in toinsert)
+ self.assert_(y in toinsert)
+ for x, y in self.d.iteritems():
+ self.assert_(x in toinsert)
+ self.assert_(y in toinsert)
+
+ def test_clear (self):
+ """
+ Test clearing.
+ """
+ self.assert_(not self.d)
+ self.d[2] = 1
+ self.d[1] = 3
+ self.d.clear()
+ self.assert_(not self.d)
+
+ def test_get_true (self):
+ """
+ Test getting a non-False object.
+ """
+ self.assert_(not self.d)
+ self.d["a"] = 0
+ self.d["b"] = 1
+ self.assertEqual(self.d.get_true("a", 2), 2)
+ self.assertEqual(self.d.get_true("b", 2), 1)
class TestSetList (tests.StandardTest):
@@ -118,6 +150,17 @@ class TestSetList (tests.StandardTest):
self.assertEqual(self.l[0], 1)
self.assertEqual(self.l[1], 2)
+ def test_insert (self):
+ """
+ Test insert and equal elements.
+ """
+ self.assert_(not self.l)
+ self.l.append(2)
+ self.l.insert(0, 1)
+ self.assertEqual(len(self.l), 2)
+ self.assertEqual(self.l[0], 1)
+ self.assertEqual(self.l[1], 2)
+
def test_setitem (self):
"""
Test setting of equal elements.
@@ -165,6 +208,40 @@ class TestLRU (tests.StandardTest):
# zero must have been deleted
self.assert_(not self.lru.has_key('0'))
+ def test_init (self):
+ """
+ Test initializing.
+ """
+ lru = linkcheck.containers.LRU(1, {1: 2})
+ self.assert_(1 in lru)
+ self.assertEqual(lru[1], 2)
+
+ def test_iters (self):
+ """
+ Test initializing.
+ """
+ toinsert = random.sample(xrange(6000000), self.count)
+ for x in toinsert:
+ self.lru[x] = x
+ for x in self.lru:
+ self.assert_(x in toinsert)
+ for x in self.lru.keys():
+ self.assert_(x in toinsert)
+ for x in self.lru.iterkeys():
+ self.assert_(x in toinsert)
+ for x in self.lru.itervalues():
+ self.assert_(x in toinsert)
+ for x, y in self.lru.iteritems():
+ self.assert_(x in toinsert)
+ self.assert_(y in toinsert)
+
+ def test_setdefault (self):
+ """
+ Test setting of default values.
+ """
+ self.assertEqual(self.lru.setdefault("hulla", "bla"), "bla")
+ self.assertEqual(self.lru.setdefault("hulla", "bla"), "bla")
+
def test_suite ():
"""
diff --git a/linkcheck/tests/test_parser.py b/linkcheck/tests/test_parser.py
index 39a9cc44..212ad9e9 100644
--- a/linkcheck/tests/test_parser.py
+++ b/linkcheck/tests/test_parser.py
@@ -116,10 +116,10 @@ parsetests = [
("""""", """"""),
("""""", """"""),
("""""", """"""),
- ("""""",
- """"""),
+ ("""""",
+ """"""),
("""""",
""""""),
# entity resolving
@@ -140,6 +140,19 @@ parsetests = [
# doctype XHTML
("""""",
""""""),
+ # meta tag with charset encoding
+ ("""""",
+ """"""),
+ ("""""",
+ """"""),
+ ("""""",
+ """"""),
+ ("""""",
+ """"""),
+ ("""""",
+ """"""),
+ # CDATA
+ ("""hallo]]>""", """hallo]]>"""),
# missing > in end tag
("""""", """
"""),
(""" | """, """"""),
diff --git a/linkcheck/tests/test_strformat.py b/linkcheck/tests/test_strformat.py
index 48c71df2..6439dc77 100644
--- a/linkcheck/tests/test_strformat.py
+++ b/linkcheck/tests/test_strformat.py
@@ -45,6 +45,8 @@ class TestStrFormat (tests.StandardTest):
self.assertEquals(u("'\"a'"), "\"a")
self.assertEquals(u('"a\'"'), 'a\'')
self.assertEquals(u('"\'a"'), '\'a')
+ self.assertEquals(u("'a'", matching=True), "a")
+ self.assertEquals(u('"a"', matching=True), "a")
# even mis-matching quotes should be removed...
self.assertEquals(u("'a\""), "a")
self.assertEquals(u("\"a'"), "a")
@@ -56,18 +58,25 @@ class TestStrFormat (tests.StandardTest):
"""
Test line wrapping.
"""
+ wrap = linkcheck.strformat.wrap
s = "11%(sep)s22%(sep)s33%(sep)s44%(sep)s55" % {'sep': os.linesep}
# testing width <= 0
- self.assertEquals(linkcheck.strformat.wrap(s, -1), s)
- self.assertEquals(linkcheck.strformat.wrap(s, 0), s)
+ self.assertEquals(wrap(s, -1), s)
+ self.assertEquals(wrap(s, 0), s)
l = len(os.linesep)
gap = " "*l
s2 = "11%(gap)s22%(sep)s33%(gap)s44%(sep)s55" % \
{'sep': os.linesep, 'gap': gap}
# splitting lines
- self.assertEquals(linkcheck.strformat.wrap(s2, 2), s)
+ self.assertEquals(wrap(s2, 2), s)
# combining lines
- self.assertEquals(linkcheck.strformat.wrap(s, 4+l), s2)
+ self.assertEquals(wrap(s, 4+l), s2)
+ # misc
+ self.assertEquals(wrap(s, -1), s)
+ self.assertEquals(wrap(s, 0), s)
+ self.assertEquals(wrap(None, 10), None)
+ self.assertFalse(linkcheck.strformat.get_paragraphs(None))
+
def test_remove_markup (self):
"""
@@ -88,6 +97,8 @@ class TestStrFormat (tests.StandardTest):
self.assertEquals(linkcheck.strformat.strsize(2), "2 Bytes")
self.assertEquals(linkcheck.strformat.strsize(1023), "1023 Bytes")
self.assertEquals(linkcheck.strformat.strsize(1024), "1.00 kB")
+ self.assertEquals(linkcheck.strformat.strsize(1024*1024), "1.00 MB")
+ self.assertEquals(linkcheck.strformat.strsize(1024*1024*1024), "1.00 GB")
def test_is_ascii (self):
self.assert_(linkcheck.strformat.is_ascii("abcd./"))
@@ -96,19 +107,54 @@ class TestStrFormat (tests.StandardTest):
def test_indent (self):
s = "bla"
- self.assertEquals(linkcheck.strformat.indent(s, ""), s)
- self.assertEquals(linkcheck.strformat.indent(s, " "), " "+s)
+ self.assertEqual(linkcheck.strformat.indent(s, ""), s)
+ self.assertEqual(linkcheck.strformat.indent(s, " "), " "+s)
def test_stripall (self):
- self.assertEquals(linkcheck.strformat.stripall("a\tb"), "ab")
- self.assertEquals(linkcheck.strformat.stripall(" a\t b"), "ab")
- self.assertEquals(linkcheck.strformat.stripall(" \r\na\t \nb\r"), "ab")
+ self.assertEqual(linkcheck.strformat.stripall("a\tb"), "ab")
+ self.assertEqual(linkcheck.strformat.stripall(" a\t b"), "ab")
+ self.assertEqual(linkcheck.strformat.stripall(" \r\na\t \nb\r"), "ab")
+ self.assertEqual(linkcheck.strformat.stripall(None), None)
def test_limit (self):
- self.assertEquals(linkcheck.strformat.limit("", 0), "")
- self.assertEquals(linkcheck.strformat.limit("a", 0), "")
- self.assertEquals(linkcheck.strformat.limit("1", 1), "1")
- self.assertEquals(linkcheck.strformat.limit("11", 1), "1...")
+ self.assertEqual(linkcheck.strformat.limit("", 0), "")
+ self.assertEqual(linkcheck.strformat.limit("a", 0), "")
+ self.assertEqual(linkcheck.strformat.limit("1", 1), "1")
+ self.assertEqual(linkcheck.strformat.limit("11", 1), "1...")
+
+ def test_time (self):
+ zone = linkcheck.strformat.strtimezone()
+ t = linkcheck.strformat.strtime(0)
+ self.assertEqual(t, "1970-01-01 01:00:00"+zone)
+
+ def test_duration (self):
+ strduration = linkcheck.strformat.strduration
+ self.assertEqual(strduration(0), "0.000 seconds")
+ self.assertEqual(strduration(1), "1.000 seconds")
+ self.assertEqual(strduration(120), "2.000 minutes")
+ self.assertEqual(strduration(60*60), "1.000 hours")
+
+ def test_linenumber (self):
+ get_line_number = linkcheck.strformat.get_line_number
+ self.assertEqual(get_line_number("a", -5), 0)
+ self.assertEqual(get_line_number("a", 0), 1)
+ self.assertEqual(get_line_number("a\nb", 2), 2)
+
+ def test_encoding (self):
+ is_encoding = linkcheck.strformat.is_encoding
+ self.assert_(is_encoding('ascii'))
+ self.assertFalse(is_encoding('hulla'))
+
+ def test_unicode_safe (self):
+ unicode_safe = linkcheck.strformat.unicode_safe
+ self.assertEqual(unicode_safe("a"), u"a")
+ self.assertEqual(unicode_safe(u"a"), u"a")
+
+ def test_ascii_safe (self):
+ ascii_safe = linkcheck.strformat.ascii_safe
+ self.assertEqual(ascii_safe("a"), "a")
+ self.assertEqual(ascii_safe(u"a"), "a")
+ self.assertEqual(ascii_safe(u"ä"), "")
def test_suite ():
|