add requires test

This commit is contained in:
2017-12-29 11:38:41 +01:00
parent a40adea1d9
commit cfb4db2559
4 changed files with 916 additions and 28 deletions

View File

@ -149,19 +149,20 @@ class Base(object):
calc_properties = frozenset()
requires = undefined
if properties is None:
properties = tuple()
properties = frozenset()
if isinstance(properties, tuple):
properties = frozenset(properties)
if is_multi and 'empty' not in properties:
properties = tuple(list(properties) + ['empty'])
if not isinstance(properties, tuple):
properties = properties | {'empty'}
if not isinstance(properties, frozenset):
raise TypeError(_('invalid properties type {0} for {1},'
' must be a tuple').format(type(properties),
' must be a frozenset').format(type(properties),
name))
if calc_properties != frozenset([]) and properties is not tuple():
set_forbidden_properties = calc_properties & set(properties)
if calc_properties != frozenset([]) and properties:
set_forbidden_properties = calc_properties & properties
if set_forbidden_properties != frozenset():
raise ValueError('conflict: properties already set in '
'requirement {0}'.format(
list(set_forbidden_properties)))
raise ValueError(_('conflict: properties already set in '
'requirement {0}').format(list(set_forbidden_properties)))
_setattr = object.__setattr__
_setattr(self, '_name', name)
_setattr(self, '_informations', {'doc': doc})