~bzr/ubuntu/natty/python-testtools/bzr-ppa

« back to all changes in this revision

Viewing changes to testtools/tests/test_content.py

  • Committer: Robert Collins
  • Date: 2009-12-15 23:13:38 UTC
  • mfrom: (16.11.2 upstream)
  • Revision ID: robertc@robertcollins.net-20091215231338-en4foxftyfaaqgn0
* New upstream release.
* Include the manual in the package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import unittest
5
5
from testtools.content import Content, TracebackContent
6
6
from testtools.content_type import ContentType
 
7
from testtools.utils import _u, _b
 
8
from testtools.tests.helpers import an_exc_info
7
9
 
8
10
 
9
11
def test_suite():
15
17
 
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)
21
23
 
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()))
27
29
 
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)
39
41
 
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)
44
46
 
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()))
49
51
 
50
52
    def test_iter_text_default_charset_iso_8859_1(self):
51
53
        content_type = ContentType("text", "strange")
52
 
        text = u"bytes\xea"
 
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()))
56
58
 
57
59
 
61
63
        self.assertRaises(ValueError, TracebackContent, None, None)
62
64
 
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())))