Welcome to mirror list, hosted at ThFree Co, Russian Federation.

bl_pyapi_text.py « python « tests - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0d8987fb69d7c2e4feedf51d0191a8f40de1dfdd (plain)
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
# SPDX-License-Identifier: Apache-2.0

# ./blender.bin --background -noaudio --python tests/python/bl_pyapi_text.py -- --verbose
import bpy
import unittest


class TestText(unittest.TestCase):

    def setUp(self):
        self.text = bpy.data.texts.new("test_text")

    def tearDown(self):
        bpy.data.texts.remove(self.text)
        del self.text

    def test_text_new(self):
        self.assertEqual(len(bpy.data.texts), 1)
        self.assertEqual(self.text.name, "test_text")
        self.assertEqual(self.text.as_string(), "\n")

    def test_text_clear(self):
        self.text.clear()
        self.assertEqual(self.text.as_string(), "\n")

    def test_text_fill(self):
        tmp_text = (
            "Line 1: Test line 1\n"
            "Line 2: test line 2\n"
            "Line 3: test line 3"
        )
        self.text.write(tmp_text)
        self.assertEqual(self.text.as_string(), tmp_text + "\n")

    def test_text_region_as_string(self):
        tmp_text = (
            "Line 1: Test line 1\n"
            "Line 2: test line 2\n"
            "Line 3: test line 3"
        )
        self.text.write(tmp_text)
        # Get string in the middle of the text.
        self.assertEqual(self.text.region_as_string(range=((1, 0), (1, -1))), "Line 2: test line 2")
        # Big range test.
        self.assertEqual(self.text.region_as_string(range=((-10000, -10000), (10000, 10000))), tmp_text)

    def test_text_region_from_string(self):
        tmp_text = (
            "Line 1: Test line 1\n"
            "Line 2: test line 2\n"
            "Line 3: test line 3"
        )
        self.text.write(tmp_text)
        # Set string in the middle of the text.
        self.text.region_from_string("line 2", range=((1, 0), (1, -1)))
        self.assertEqual(self.text.as_string(), tmp_text.replace("Line 2: test line 2", "line 2") + "\n")
        # Large range test.
        self.text.region_from_string("New Text", range=((-10000, -10000), (10000, 10000)))
        self.assertEqual(self.text.as_string(), "New Text\n")


if __name__ == "__main__":
    import sys
    sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else [])
    unittest.main()