# coding: utf-8 import autopath from py.test import raises from tiramisu.config import Config, SubConfig from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \ StrOption, OptionDescription, SymLinkOption, UnicodeOption def test_slots_option(): c = BoolOption('a', '') raises(AttributeError, "c.x = 1") c = IntOption('a', '') raises(AttributeError, "c.x = 1") c = FloatOption('a', '') raises(AttributeError, "c.x = 1") c = StrOption('a', '') raises(AttributeError, "c.x = 1") c = SymLinkOption('b', c) raises(AttributeError, "c.x = 1") c = UnicodeOption('a', '') raises(AttributeError, "c.x = 1") c = ChoiceOption('a', '', ('a',)) raises(AttributeError, "c.x = 1") c = OptionDescription('a', '', []) raises(AttributeError, "c.x = 1") def test_slots_config(): od1 = OptionDescription('a', '', []) od2 = OptionDescription('a', '', [od1]) c = Config(od2) raises(AttributeError, "c.x = 1") raises(AttributeError, "c.cfgimpl_x = 1") sc = c.a assert isinstance(sc, SubConfig) raises(AttributeError, "sc.x = 1") raises(AttributeError, "sc.cfgimpl_x = 1") def test_slots_setting(): od1 = OptionDescription('a', '', []) od2 = OptionDescription('a', '', [od1]) c = Config(od2) s = c.cfgimpl_get_settings() raises(AttributeError, "s.x = 1") def test_slots_value(): od1 = OptionDescription('a', '', []) od2 = OptionDescription('a', '', [od1]) c = Config(od2) v = c.cfgimpl_get_values() raises(AttributeError, "v.x = 1")