(self)
| 26 | self.assertEqual(text.debug(), olddebug) |
| 27 | |
| 28 | def test_search(self): |
| 29 | text = self.text |
| 30 | |
| 31 | # pattern and index are obligatory arguments. |
| 32 | self.assertRaises(tkinter.TclError, text.search, None, '1.0') |
| 33 | self.assertRaises(tkinter.TclError, text.search, 'a', None) |
| 34 | self.assertRaises(tkinter.TclError, text.search, None, None) |
| 35 | |
| 36 | # Invalid text index. |
| 37 | self.assertRaises(tkinter.TclError, text.search, '', 0) |
| 38 | self.assertRaises(tkinter.TclError, text.search, '', '') |
| 39 | self.assertRaises(tkinter.TclError, text.search, '', 'invalid') |
| 40 | self.assertRaises(tkinter.TclError, text.search, '', '1.0', 0) |
| 41 | self.assertRaises(tkinter.TclError, text.search, '', '1.0', '') |
| 42 | self.assertRaises(tkinter.TclError, text.search, '', '1.0', 'invalid') |
| 43 | |
| 44 | text.insert('1.0', |
| 45 | 'This is a test. This is only a test.\n' |
| 46 | 'Another line.\n' |
| 47 | 'Yet another line.\n' |
| 48 | '64-bit') |
| 49 | |
| 50 | self.assertEqual(text.search('test', '1.0'), '1.10') |
| 51 | self.assertEqual(text.search('test', '1.0', 'end'), '1.10') |
| 52 | self.assertEqual(text.search('test', '1.0', '1.10'), '') |
| 53 | self.assertEqual(text.search('test', '1.11'), '1.31') |
| 54 | self.assertEqual(text.search('test', '1.32', 'end'), '') |
| 55 | self.assertEqual(text.search('test', '1.32'), '1.10') |
| 56 | |
| 57 | self.assertEqual(text.search('', '1.0'), '1.0') # empty pattern |
| 58 | self.assertEqual(text.search('nonexistent', '1.0'), '') |
| 59 | self.assertEqual(text.search('-bit', '1.0'), '4.2') # starts with a hyphen |
| 60 | |
| 61 | self.assertEqual(text.search('line', '3.0'), '3.12') |
| 62 | self.assertEqual(text.search('line', '3.0', forwards=True), '3.12') |
| 63 | self.assertEqual(text.search('line', '3.0', backwards=True), '2.8') |
| 64 | self.assertEqual(text.search('line', '3.0', forwards=True, backwards=True), '2.8') |
| 65 | |
| 66 | self.assertEqual(text.search('t.', '1.0'), '1.13') |
| 67 | self.assertEqual(text.search('t.', '1.0', exact=True), '1.13') |
| 68 | self.assertEqual(text.search('t.', '1.0', regexp=True), '1.10') |
| 69 | self.assertEqual(text.search('t.', '1.0', exact=True, regexp=True), '1.10') |
| 70 | |
| 71 | self.assertEqual(text.search('TEST', '1.0'), '') |
| 72 | self.assertEqual(text.search('TEST', '1.0', nocase=True), '1.10') |
| 73 | |
| 74 | self.assertEqual(text.search('.*line', '1.0', regexp=True), '2.0') |
| 75 | self.assertEqual(text.search('.*line', '1.0', regexp=True, nolinestop=True), '1.0') |
| 76 | |
| 77 | self.assertEqual(text.search('test', '1.0', '1.13'), '1.10') |
| 78 | self.assertEqual(text.search('test', '1.0', '1.13', strictlimits=True), '') |
| 79 | self.assertEqual(text.search('test', '1.0', '1.14', strictlimits=True), '1.10') |
| 80 | |
| 81 | var = tkinter.Variable(self.root) |
| 82 | self.assertEqual(text.search('test', '1.0', count=var), '1.10') |
| 83 | self.assertEqual(var.get(), 4 if self.wantobjects else '4') |
| 84 | |
| 85 | # TODO: Add test for elide=True |
nothing calls this directly
no test coverage detected