示例#1
0
    def testLineLength(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)
        self.assertEqual(doc.lineLength(1), 6)
        self.assertEqual(doc.lineLength(2), 13)

        doc = TextDocument()
        with open(fixtures.get("empty_file.txt"), 'r') as f:
            doc.read(f)
        self.assertEqual(doc.lineLength(1), 1)
示例#2
0
 def testUpdateDocumentMeta(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.createDocumentMetaInfo("Hello")
     doc.documentMetaInfo("Hello").setData(5)
     self.assertEqual(doc.documentMetaInfo("Hello").data(), 5)
示例#3
0
    def testDeleteChars(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)

        self.assertRaises(ValueError, lambda: doc.deleteChars((1, 3), -1))

        d = doc.deleteChars((1, 3), 1)
        self.assertEqual(doc.lineText(1), 'helo\n')
        self.assertEqual(d[0], 'l')

        d = doc.deleteChars((1, 2), 100)
        self.assertEqual(doc.lineText(1), 'h\n')
        self.assertEqual(d[0], 'elo')

        d = doc.deleteChars((1, 2), 100)
        self.assertEqual(doc.lineText(1), 'h\n')
        self.assertEqual(d[0], '')

        d = doc.deleteChars((1, 1), 100)
        self.assertEqual(doc.lineText(1), '\n')
        self.assertEqual(d[0], 'h')

        d = doc.deleteChars((1, 1), 100)
        self.assertEqual(doc.lineText(1), '\n')
        self.assertEqual(d[0], '')
示例#4
0
 def testBreakLine(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.breakLine((1, 3))
     self.assertEqual(doc.lineText(1), "he\n")
     self.assertEqual(doc.lineText(2), "llo\n")
示例#5
0
    def testInitFromNonEmptyFile(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)

        self.assertFalse(doc.isEmpty())
        self.assertEqual(doc.numLines(), 2)
        self.assertEqual(doc.documentText(), 'hello\nhow are you?\n')
示例#6
0
 def testJoinWithNextLine2(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.joinWithNextLine(2)
     self.assertEqual(doc.lineText(1), 'hello\n')
     self.assertEqual(doc.lineText(2), 'how are you?\n')
     self.assertEqual(doc.numLines(), 2)
示例#7
0
 def testSameObject(self):
     doc = TextDocument()
     doc.createLineMetaInfo("whatever")
     doc.createLineMetaInfo("whatever2")
     self.assertEqual(doc.lineMetaInfo("whatever"),
                      doc.lineMetaInfo("whatever"))
     self.assertNotEqual(doc.lineMetaInfo("whatever"),
                         doc.lineMetaInfo("whatever2"))
示例#8
0
    def testInitFromEmptyFile(self):
        doc = TextDocument()
        with open(fixtures.get("empty_file.txt"), "r") as f:
            doc.read(f)

        self.assertTrue(doc.isEmpty())
        self.assertEqual(doc.numLines(), 1)
        self.assertEqual(doc.documentText(), '\n')
示例#9
0
 def testUpdateCharMeta(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.updateCharMeta((1, 3), {
         "foo": ["a", "a"],
         "bar": ['b', None, 'b'],
     })
示例#10
0
 def testCharMeta(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.updateCharMeta((1, 1), {"Hello": [1]})
     self.assertEqual(len(doc.charMeta((1, 1))["Hello"]),
                      len(doc.lineText(1)))
     self.assertEqual(
         doc.charMeta((1, 1))["Hello"], [1, None, None, None, None, None])
示例#11
0
    def testIsEmpty(self):
        doc = TextDocument()

        self.assertTrue(doc.isEmpty())
        doc.insertLine(1, "hello")

        self.assertFalse(doc.isEmpty())

        doc.deleteLine(1)
        self.assertTrue(doc.isEmpty())
示例#12
0
    def testLine(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)

        self.assertEqual(doc.lineText(1), 'hello\n')
        self.assertEqual(doc.lineText(2), 'how are you?\n')

        self.assertRaises(IndexError, lambda: doc.lineText(-1))
        self.assertRaises(IndexError, lambda: doc.lineText(0))
        self.assertRaises(IndexError, lambda: doc.lineText(5))
示例#13
0
    def testReplaceChars(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)
        doc.replaceChars((1, 3), 1, "hello")

        self.assertEqual(doc.lineText(1), 'hehellolo\n')

        doc.replaceChars((1, 1), 1, "c")

        self.assertEqual(doc.lineText(1), 'cehellolo\n')
示例#14
0
    def testSetDataForLines(self):
        doc = TextDocument()
        doc.createLineMetaInfo("whatever")
        doc.insertLine(1, "hello")
        doc.insertLine(1, "hello")
        doc.insertLine(1, "hello")
        meta_info = doc.lineMetaInfo("whatever")

        meta_info.setDataForLines({2: "damn"})

        self.assertEqual(meta_info.data(), [None, "damn", None, None])
示例#15
0
    def testBasic(self):
        doc = TextDocument()
        doc.createLineMetaInfo("whatever")
        meta_info = doc.lineMetaInfo("whatever")

        self.assertEqual(meta_info.document, doc)
        self.assertEqual(meta_info.meta_type, "whatever")
        self.assertEqual(meta_info.numLines(), 1)
        self.assertEqual(meta_info.data(1), None)

        meta_info.setData("hello", 1)
        self.assertEqual(meta_info.data(1), "hello")
示例#16
0
    def testInsertLine(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)
        self.assertEqual(doc.numLines(), 2)
        doc.insertLine(1, "babau")
        self.assertEqual(doc.numLines(), 3)

        self.assertRaises(IndexError,
                          lambda: doc.insertLine(6, "say what again"))

        doc.insertLine(4, "say what again")
        self.assertEqual(doc.numLines(), 4)
示例#17
0
    def testReplaceFromMemento(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)
        doc.createLineMetaInfo("whatever")
        initial_text = doc.documentText()
        meta_info1 = doc.lineMetaInfo("whatever")
        meta_info1.setData("hello", 1)

        memento = doc.lineMemento(1)
        doc.insertChars((1, 1), 'gnakgnak')
        meta_info1.setData("byebye", 1)
        doc.replaceFromMemento(1, memento)

        self.assertEqual(doc.documentText(), initial_text)
        self.assertEqual(meta_info1.data(1), "hello")
示例#18
0
    def testInsertFragment(self):
        doc = TextDocument()
        with open(fixtures.get("numbers.txt"), 'r') as f:
            doc.read(f)
        doc.createLineMetaInfo("whatever")
        doc.createLineMetaInfo("whatever2")

        fragment = doc.extractFragment(2)
        self.assertNotEqual(fragment.lineText(1), doc.lineText(15))
        doc.insertFragment(15, fragment)
        self.assertEqual(fragment.lineText(1), doc.lineText(15))

        fragment = doc.extractFragment(2, 4)
        self.assertNotEqual(fragment.lineText(1), doc.lineText(10))
        doc.insertFragment(10, fragment)

        self.assertEqual(fragment.lineText(1), doc.lineText(10))
        self.assertEqual(fragment.lineText(2), doc.lineText(11))
        self.assertEqual(fragment.lineText(3), doc.lineText(12))
        self.assertEqual(fragment.lineText(4), doc.lineText(13))
示例#19
0
    def testExtractFragment(self):
        doc = TextDocument()
        with open(fixtures.get("bigfile.py"), 'r') as f:
            doc.read(f)
        doc.createLineMetaInfo("whatever")
        doc.createLineMetaInfo("whatever2")

        fragment = doc.extractFragment(2)
        self.assertEqual(fragment.numLines(), 1)
        self.assertEqual(fragment.lineText(1), doc.lineText(2))
        self.assertTrue(fragment.hasLineMetaInfo("whatever"))
        self.assertTrue(fragment.hasLineMetaInfo("whatever2"))

        fragment = doc.extractFragment(2, 3)
        self.assertEqual(fragment.numLines(), 3)
        self.assertEqual(fragment.lineText(1), doc.lineText(2))
        self.assertEqual(fragment.lineText(2), doc.lineText(3))
        self.assertEqual(fragment.lineText(3), doc.lineText(4))
        self.assertTrue(fragment.hasLineMetaInfo("whatever"))
        self.assertTrue(fragment.hasLineMetaInfo("whatever2"))
示例#20
0
    def testChangeLineNumber(self):
        doc = TextDocument()
        doc.createLineMetaInfo("whatever")
        doc.createLineMetaInfo("whatever2")
        meta_info1 = doc.lineMetaInfo("whatever")
        meta_info2 = doc.lineMetaInfo("whatever2")

        meta_info1.setData("hello", 1)
        meta_info2.setData("byebye", 1)

        doc.newLineAfter(1)

        self.assertEqual(meta_info1.numLines(), 2)
        self.assertEqual(meta_info2.numLines(), 2)

        self.assertEqual(meta_info1.data(1, 2), ["hello", None])
        self.assertEqual(meta_info2.data(1, 2), ["byebye", None])

        doc.newLine(1)

        self.assertEqual(meta_info1.numLines(), 3)
        self.assertEqual(meta_info2.numLines(), 3)

        self.assertEqual(meta_info1.data(1, 3), [None, "hello", None])
        self.assertEqual(meta_info2.data(1, 3), [None, "byebye", None])

        doc.deleteLine(2)

        self.assertEqual(meta_info1.numLines(), 2)
        self.assertEqual(meta_info2.numLines(), 2)

        self.assertEqual(meta_info1.data(1, 2), [None, None])
        self.assertEqual(meta_info2.data(1, 2), [None, None])

        self.assertEqual(meta_info1.data(1, 1), [None])
        self.assertEqual(meta_info2.data(1, 1), [None])

        self.assertEqual(meta_info1.data(1), None)
        self.assertEqual(meta_info2.data(1), None)
示例#21
0
    def testDeleteLine2(self):
        doc = TextDocument()
        with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
            doc.read(f)

        self.assertEqual(doc.lineText(1), 'hello\n')
        self.assertEqual(doc.lineText(2), 'how are you?\n')
        self.assertEqual(doc.numLines(), 2)

        self.assertRaises(IndexError, lambda: doc.deleteLine(5))
        self.assertEqual(doc.lineText(1), 'hello\n')
        self.assertEqual(doc.lineText(2), 'how are you?\n')
        self.assertEqual(doc.numLines(), 2)

        doc.deleteLine(2)
        self.assertEqual(doc.lineText(1), 'hello\n')
        self.assertEqual(doc.numLines(), 1)
        self.assertFalse(doc.isEmpty())

        doc.deleteLine(1)
        self.assertEqual(doc.lineText(1), '\n')
        self.assertEqual(doc.numLines(), 1)
        self.assertTrue(doc.isEmpty())
示例#22
0
    def testLineMetaInfoMemento(self):
        doc = TextDocument()
        doc.createLineMetaInfo("whatever")
        doc.createLineMetaInfo("whatever2")

        meta_info1 = doc.lineMetaInfo("whatever")
        meta_info2 = doc.lineMetaInfo("whatever2")
        doc.newLineAfter(1)
        doc.newLine(1)

        meta_info1.setData("hello", 1)
        meta_info2.setData("byebye", 1)

        memento = doc.lineMemento(1)

        doc.deleteLine(1)
        self.assertEqual(doc.lineMetaInfo("whatever").data(1), None)
        self.assertEqual(doc.lineMetaInfo("whatever2").data(1), None)

        doc.insertFromMemento(1, memento)
        self.assertEqual(doc.lineText(1), '\n')
        self.assertEqual(doc.lineMetaInfo("whatever").data(1), 'hello')
        self.assertEqual(doc.lineMetaInfo("whatever2").data(1), 'byebye')
示例#23
0
 def registerCursor(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     cursor = TextDocumentCursor(doc)
示例#24
0
 def testDeleteLines(self):
     doc = TextDocument()
     with open(fixtures.get("bigfile.py"), 'r') as f:
         doc.read(f)
     doc.deleteLines(1, 3)
示例#25
0
 def testInsertLines(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.insertLines(2, ['foo', 'bar'])
     self.assertEqual(doc.numLines(), 4)
示例#26
0
    def testInitEmpty(self):
        doc = TextDocument()

        self.assertTrue(doc.isEmpty())
        self.assertEqual(doc.numLines(), 1)
        self.assertEqual(doc.documentText(), '\n')
示例#27
0
 def testSave(self):
     path = fixtures.tempFile("testSave")
     doc = TextDocument()
     with open(path, 'w') as f:
         doc.write(f)
     self.assertTrue(os.path.exists(path))
示例#28
0
 def createCursor(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     doc.createCursor()
示例#29
0
 def testHasLine(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     self.assertTrue(doc.hasLine(1))
     self.assertFalse(doc.hasLine(20))
示例#30
0
 def testWordAt(self):
     doc = TextDocument()
     with open(fixtures.get("basic_nonempty_file.txt"), 'r') as f:
         doc.read(f)
     self.assertEqual(doc.wordAt((2, 6)), ('are', 5))