16
18
def test___init___None_errors(self):
17
19
self.assertRaises(ValueError, Content, None, None)
18
self.assertRaises(ValueError, Content, None, lambda:["traceback"])
20
self.assertRaises(ValueError, Content, None, lambda: ["traceback"])
19
21
self.assertRaises(ValueError, Content,
20
22
ContentType("text", "traceback"), None)
22
24
def test___init___sets_ivars(self):
23
25
content_type = ContentType("foo", "bar")
24
content = Content(content_type, lambda:["bytes"])
26
content = Content(content_type, lambda: ["bytes"])
25
27
self.assertEqual(content_type, content.content_type)
26
28
self.assertEqual(["bytes"], list(content.iter_bytes()))
28
30
def test___eq__(self):
29
31
content_type = ContentType("foo", "bar")
30
content1 = Content(content_type, lambda:["bytes"])
31
content2 = Content(content_type, lambda:["bytes"])
32
content3 = Content(content_type, lambda:["by", "tes"])
33
content4 = Content(content_type, lambda:["by", "te"])
34
content5 = Content(ContentType("f","b"), lambda:["by", "tes"])
32
content1 = Content(content_type, lambda: ["bytes"])
33
content2 = Content(content_type, lambda: ["bytes"])
34
content3 = Content(content_type, lambda: ["by", "tes"])
35
content4 = Content(content_type, lambda: ["by", "te"])
36
content5 = Content(ContentType("f","b"), lambda: ["by", "tes"])
35
37
self.assertEqual(content1, content2)
36
38
self.assertEqual(content1, content3)
37
39
self.assertNotEqual(content1, content4)
40
42
def test_iter_text_not_text_errors(self):
41
43
content_type = ContentType("foo", "bar")
42
content = Content(content_type, lambda:["bytes"])
44
content = Content(content_type, lambda: ["bytes"])
43
45
self.assertRaises(ValueError, content.iter_text)
45
47
def test_iter_text_decodes(self):
46
48
content_type = ContentType("text", "strange", {"charset":"utf8"})
47
content = Content(content_type, lambda:[u"bytes\xea".encode("utf8")])
48
self.assertEqual([u"bytes\xea"], list(content.iter_text()))
49
content = Content(content_type, lambda: [_u("bytes\xea").encode("utf8")])
50
self.assertEqual([_u("bytes\xea")], list(content.iter_text()))
50
52
def test_iter_text_default_charset_iso_8859_1(self):
51
53
content_type = ContentType("text", "strange")
54
text = _u("bytes\xea")
53
55
iso_version = text.encode("ISO-8859-1")
54
content = Content(content_type, lambda:[iso_version])
56
content = Content(content_type, lambda: [iso_version])
55
57
self.assertEqual([text], list(content.iter_text()))
61
63
self.assertRaises(ValueError, TracebackContent, None, None)
63
65
def test___init___sets_ivars(self):
64
exc_info = sys.exc_info()
65
content = TracebackContent(exc_info, self)
66
content = TracebackContent(an_exc_info, self)
66
67
content_type = ContentType("text", "x-traceback",
67
{"language":"python"})
68
{"language":"python", "charset": "utf8"})
68
69
self.assertEqual(content_type, content.content_type)
69
70
result = unittest.TestResult()
70
expected = result._exc_info_to_string(exc_info, self)
71
self.assertEqual(expected, ''.join(list(content.iter_bytes())))
71
expected = result._exc_info_to_string(an_exc_info, self)
72
self.assertEqual(expected, ''.join(list(content.iter_text())))