X Tutup
import os import tempfile import textwrap import unittest from pathlib import Path from bpython import config TEST_THEME_PATH = Path(os.path.join(os.path.dirname(__file__), "test.theme")) class TestConfig(unittest.TestCase): def load_temp_config(self, content): """Write config to a temporary file and load it.""" with tempfile.NamedTemporaryFile() as f: f.write(content.encode("utf8")) f.flush() return config.Config(Path(f.name)) def test_load_theme(self): color_scheme = dict() config.load_theme(TEST_THEME_PATH, color_scheme, dict()) expected = {"keyword": "y"} self.assertEqual(color_scheme, expected) defaults = {"name": "c"} expected.update(defaults) config.load_theme(TEST_THEME_PATH, color_scheme, defaults) self.assertEqual(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