Test colorkeys function with user config [Theme] and [Keys] patterns. colorkeys = config.IdleConf.current_colors_and_keys Test all patterns written by IDLE and some errors Item 'default' should really be 'builtin' (versus 'custom).
| 587 | |
| 588 | |
| 589 | class CurrentColorKeysTest(unittest.TestCase): |
| 590 | """ Test colorkeys function with user config [Theme] and [Keys] patterns. |
| 591 | |
| 592 | colorkeys = config.IdleConf.current_colors_and_keys |
| 593 | Test all patterns written by IDLE and some errors |
| 594 | Item 'default' should really be 'builtin' (versus 'custom). |
| 595 | """ |
| 596 | colorkeys = idleConf.current_colors_and_keys |
| 597 | default_theme = 'IDLE Classic' |
| 598 | default_keys = idleConf.default_keys() |
| 599 | |
| 600 | def test_old_builtin_theme(self): |
| 601 | # On initial installation, user main is blank. |
| 602 | self.assertEqual(self.colorkeys('Theme'), self.default_theme) |
| 603 | # For old default, name2 must be blank. |
| 604 | usermain.read_string(''' |
| 605 | [Theme] |
| 606 | default = True |
| 607 | ''') |
| 608 | # IDLE omits 'name' for default old builtin theme. |
| 609 | self.assertEqual(self.colorkeys('Theme'), self.default_theme) |
| 610 | # IDLE adds 'name' for non-default old builtin theme. |
| 611 | usermain['Theme']['name'] = 'IDLE New' |
| 612 | self.assertEqual(self.colorkeys('Theme'), 'IDLE New') |
| 613 | # Erroneous non-default old builtin reverts to default. |
| 614 | usermain['Theme']['name'] = 'non-existent' |
| 615 | self.assertEqual(self.colorkeys('Theme'), self.default_theme) |
| 616 | usermain.remove_section('Theme') |
| 617 | |
| 618 | def test_new_builtin_theme(self): |
| 619 | # IDLE writes name2 for new builtins. |
| 620 | usermain.read_string(''' |
| 621 | [Theme] |
| 622 | default = True |
| 623 | name2 = IDLE Dark |
| 624 | ''') |
| 625 | self.assertEqual(self.colorkeys('Theme'), 'IDLE Dark') |
| 626 | # Leftover 'name', not removed, is ignored. |
| 627 | usermain['Theme']['name'] = 'IDLE New' |
| 628 | self.assertEqual(self.colorkeys('Theme'), 'IDLE Dark') |
| 629 | # Erroneous non-default new builtin reverts to default. |
| 630 | usermain['Theme']['name2'] = 'non-existent' |
| 631 | self.assertEqual(self.colorkeys('Theme'), self.default_theme) |
| 632 | usermain.remove_section('Theme') |
| 633 | |
| 634 | def test_user_override_theme(self): |
| 635 | # Erroneous custom name (no definition) reverts to default. |
| 636 | usermain.read_string(''' |
| 637 | [Theme] |
| 638 | default = False |
| 639 | name = Custom Dark |
| 640 | ''') |
| 641 | self.assertEqual(self.colorkeys('Theme'), self.default_theme) |
| 642 | # Custom name is valid with matching Section name. |
| 643 | userhigh.read_string('[Custom Dark]\na=b') |
| 644 | self.assertEqual(self.colorkeys('Theme'), 'Custom Dark') |
| 645 | # Name2 is ignored. |
| 646 | usermain['Theme']['name2'] = 'non-existent' |
nothing calls this directly
no test coverage detected
searching dependent graphs…