tiramisu/test/test_slots.py
2014-02-16 23:37:27 +01:00

165 lines
5.5 KiB
Python

## 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, SymLinkOption, UnicodeOption, IPOption, OptionDescription, \
PortOption, NetworkOption, NetmaskOption, DomainnameOption, EmailOption, \
URLOption, FilenameOption
#def test_slots_option():
# c = ChoiceOption('a', '', ('a',))
# raises(AttributeError, "c.x = 1")
# 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 = IPOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = OptionDescription('a', '', [])
# raises(AttributeError, "c.x = 1")
# c = PortOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = NetworkOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = NetmaskOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = DomainnameOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = EmailOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = URLOption('a', '')
# raises(AttributeError, "c.x = 1")
# c = FilenameOption('a', '')
# raises(AttributeError, "c.x = 1")
#
#
#def test_slots_option_readonly():
# a = ChoiceOption('a', '', ('a',))
# b = BoolOption('b', '')
# c = IntOption('c', '')
# d = FloatOption('d', '')
# e = StrOption('e', '')
# g = UnicodeOption('g', '')
# h = IPOption('h', '')
# i = PortOption('i', '')
# j = NetworkOption('j', '')
# k = NetmaskOption('k', '')
# l = DomainnameOption('l', '')
# o = EmailOption('o', '')
# p = URLOption('p', '')
# q = FilenameOption('q', '')
# m = OptionDescription('m', '', [a, b, c, d, e, g, h, i, j, k, l, o, p, q])
# a._requires = 'a'
# b._requires = 'b'
# c._requires = 'c'
# d._requires = 'd'
# e._requires = 'e'
# g._requires = 'g'
# h._requires = 'h'
# i._requires = 'i'
# j._requires = 'j'
# k._requires = 'k'
# l._requires = 'l'
# m._requires = 'm'
# o._requires = 'o'
# p._requires = 'p'
# q._requires = 'q'
# Config(m)
# raises(AttributeError, "a._requires = 'a'")
# raises(AttributeError, "b._requires = 'b'")
# raises(AttributeError, "c._requires = 'c'")
# raises(AttributeError, "d._requires = 'd'")
# raises(AttributeError, "e._requires = 'e'")
# raises(AttributeError, "g._requires = 'g'")
# raises(AttributeError, "h._requires = 'h'")
# raises(AttributeError, "i._requires = 'i'")
# raises(AttributeError, "j._requires = 'j'")
# raises(AttributeError, "k._requires = 'k'")
# raises(AttributeError, "l._requires = 'l'")
# raises(AttributeError, "m._requires = 'm'")
# raises(AttributeError, "o._requires = 'o'")
# raises(AttributeError, "p._requires = 'p'")
# raises(AttributeError, "q._requires = 'q'")
#
#
#def test_slots_option_readonly_name():
# a = ChoiceOption('a', '', ('a',))
# b = BoolOption('b', '')
# c = IntOption('c', '')
# d = FloatOption('d', '')
# e = StrOption('e', '')
# f = SymLinkOption('f', c)
# g = UnicodeOption('g', '')
# h = IPOption('h', '')
# i = PortOption('i', '')
# j = NetworkOption('j', '')
# k = NetmaskOption('k', '')
# l = DomainnameOption('l', '')
# o = DomainnameOption('o', '')
# p = DomainnameOption('p', '')
# q = DomainnameOption('q', '')
# m = OptionDescription('m', '', [a, b, c, d, e, f, g, h, i, j, k, l, o, p, q])
# raises(AttributeError, "a._name = 'a'")
# raises(AttributeError, "b._name = 'b'")
# raises(AttributeError, "c._name = 'c'")
# raises(AttributeError, "d._name = 'd'")
# raises(AttributeError, "e._name = 'e'")
# raises(AttributeError, "f._name = 'f'")
# raises(AttributeError, "g._name = 'g'")
# raises(AttributeError, "h._name = 'h'")
# raises(AttributeError, "i._name = 'i'")
# raises(AttributeError, "j._name = 'j'")
# raises(AttributeError, "k._name = 'k'")
# raises(AttributeError, "l._name = 'l'")
# raises(AttributeError, "m._name = 'm'")
# raises(AttributeError, "o._name = 'o'")
# raises(AttributeError, "p._name = 'p'")
# raises(AttributeError, "q._name = 'q'")
#
#
##def test_slots_description():
## # __slots__ for OptionDescription should be complete for __getattr__
## slots = set()
## for subclass in OptionDescription.__mro__:
## if subclass is not object:
## slots.update(subclass.__slots__)
## assert slots == set(OptionDescription.__slots__)
#
#
#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")