File: test_textarea.py

package info (click to toggle)
svgwrite 1.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,304 kB
  • sloc: python: 12,524; makefile: 116; sh: 5
file content (89 lines) | stat: -rw-r--r-- 3,768 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
#coding:utf-8
# Author:  mozman --<mozman@gmx.at>
# Purpose: test TextArea class
# Created: 14.10.2010
# Copyright (C) 2010, Manfred Moitzi
# License: MIT License

import sys
import unittest

from svgwrite.text import TextArea
from svgwrite.text import TBreak


class TestTBreak(unittest.TestCase):
    def test_tostring(self):
        br = TBreak(profile='tiny')
        self.assertEqual(br.tostring(), "<tbreak />")

    def test_errors(self):
        br = TBreak()
        self.assertRaises(NotImplementedError, br.add, None)
        self.assertRaises(NotImplementedError, br.__getitem__, 'key')
        self.assertRaises(NotImplementedError, br.__setitem__, 'key', 'value')


class TestTextAreaFullProfile(unittest.TestCase):
    def test_constructor(self):
        self.assertRaises(KeyError, TextArea, (0, 0))


class TestTextAreaTinyProfile(unittest.TestCase):
    def test_constructor(self):
        textarea = TextArea(insert=(1, 2), size=(10,20), profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea height="20" width="10" x="1" y="2" />')

    def test_write_one_line(self):
        textarea = TextArea(profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea />')
        textarea.write('a line.')
        self.assertEqual(textarea.tostring(), '<textArea><tspan>a line.</tspan></textArea>')

    def test_write_linebreaks(self):
        textarea = TextArea('\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /></textArea>')
        textarea = TextArea('\n\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /><tbreak /></textArea>')

    def test_write_lines(self):
        textarea = TextArea('line1\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tspan>line1</tspan><tbreak /></textArea>')

        textarea = TextArea('line1\nline2', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tspan>line1</tspan><tbreak />'
                         '<tspan>line2</tspan></textArea>')

        textarea = TextArea('line1\nline2\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tspan>line1</tspan><tbreak />'
                         '<tspan>line2</tspan><tbreak /></textArea>')

        textarea = TextArea('line1\n \nline2\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tspan>line1</tspan><tbreak />'
                         '<tspan> </tspan><tbreak /><tspan>line2</tspan><tbreak /></textArea>')

    def test_line_increment(self):
        textarea = TextArea('line1\n', profile='tiny')
        textarea.line_increment('14')
        self.assertEqual(textarea.tostring(), '<textArea line-increment="14"><tspan>line1</tspan><tbreak /></textArea>')

    def test_write_lines_prepending_linebreak(self):
        textarea = TextArea('\nline1\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /><tspan>line1</tspan><tbreak /></textArea>')

        textarea = TextArea('\nline1\nline2', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /><tspan>line1</tspan><tbreak />'
                         '<tspan>line2</tspan></textArea>')

        textarea = TextArea('\nline1\nline2\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /><tspan>line1</tspan><tbreak />'
                         '<tspan>line2</tspan><tbreak /></textArea>')

        textarea = TextArea('\nline1\n\nline2\n', profile='tiny')
        self.assertEqual(textarea.tostring(), '<textArea><tbreak /><tspan>line1</tspan><tbreak />'
                         '<tbreak /><tspan>line2</tspan><tbreak /></textArea>')


if __name__ == '__main__':
    unittest.main()