X Tutup
import os import tempfile import textwrap from bpython.test import unittest from bpython import config TEST_THEME_PATH = os.path.join(os.path.dirname(__file__), "test.theme") class TestConfig(unittest.TestCase): def load_temp_config(self, content, struct=None): """Write config to a temporary file and load it.""" if struct is None: struct = config.Struct() with tempfile.NamedTemporaryFile() as f: f.write(content.encode('utf8')) f.flush() config.loadini(struct, f.name) return struct def test_load_theme(self): struct = config.Struct() struct.color_scheme = dict() config.load_theme(struct, TEST_THEME_PATH, struct.color_scheme, dict()) expected = {"keyword": "y"} self.assertEquals(struct.color_scheme, expected) defaults = {"name": "c"} expected.update(defaults) config.load_theme(struct, TEST_THEME_PATH, struct.color_scheme, defaults) self.assertEquals(struct.color_scheme, expected) def test_keybindings_default_contains_no_duplicates(self): struct = self.load_temp_config("") keys = (attr for attr in dir(struct) if attr.endswith('_key')) mapped_keys = [getattr(struct, key) for key in keys if getattr(struct, key)] mapped_keys_set = set(mapped_keys) self.assertEqual(len(mapped_keys), len(mapped_keys_set)) def test_keybindings_use_default(self): struct = self.load_temp_config(textwrap.dedent(""" [keyboard] help = F1 """)) self.assertEqual(struct.help_key, 'F1') def test_keybindings_use_other_default(self): struct = self.load_temp_config(textwrap.dedent(""" [keyboard] help = C-h """)) self.assertEqual(struct.help_key, 'C-h') self.assertEqual(struct.backspace_key, '') def test_keybindings_use_other_default_issue_447(self): struct = self.load_temp_config(textwrap.dedent(""" [keyboard] help = F2 show_source = F9 """)) self.assertEqual(struct.help_key, 'F2') self.assertEqual(struct.show_source_key, 'F9') def test_keybindings_unset(self): struct = self.load_temp_config(textwrap.dedent(""" [keyboard] help = """)) self.assertFalse(struct.help_key) def test_keybindings_unused(self): struct = self.load_temp_config(textwrap.dedent(""" [keyboard] help = F4 """)) self.assertEqual(struct.help_key, 'F4')
X Tutup