mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
363: Added Object.params_minus_pk instance attribute
This commit is contained in:
@@ -515,11 +515,13 @@ class Object(plugable.Plugin):
|
||||
'properties',
|
||||
'params',
|
||||
'primary_key',
|
||||
'params_minus_pk',
|
||||
))
|
||||
methods = None
|
||||
properties = None
|
||||
params = None
|
||||
primary_key = None
|
||||
params_minus_pk = None
|
||||
takes_params = tuple()
|
||||
|
||||
def set_api(self, api):
|
||||
@@ -543,6 +545,9 @@ class Object(plugable.Plugin):
|
||||
)
|
||||
if len(pkeys) == 1:
|
||||
self.primary_key = pkeys[0]
|
||||
self.params_minus_pk = plugable.NameSpace(
|
||||
filter(lambda p: not p.primary_key, self.params()), sort=False
|
||||
)
|
||||
|
||||
def __get_attrs(self, name):
|
||||
namespace = getattr(self.api, name)
|
||||
|
||||
@@ -763,6 +763,7 @@ class test_Object(ClassChecker):
|
||||
assert self.cls.methods is None
|
||||
assert self.cls.properties is None
|
||||
assert self.cls.params is None
|
||||
assert self.cls.params_minus_pk is None
|
||||
assert self.cls.takes_params == tuple()
|
||||
|
||||
def test_init(self):
|
||||
@@ -773,6 +774,7 @@ class test_Object(ClassChecker):
|
||||
assert o.methods is None
|
||||
assert o.properties is None
|
||||
assert o.params is None
|
||||
assert o.params_minus_pk is None
|
||||
assert o.properties is None
|
||||
|
||||
def test_set_api(self):
|
||||
@@ -877,6 +879,7 @@ class test_Object(ClassChecker):
|
||||
o = example1()
|
||||
o.set_api(api)
|
||||
assert o.primary_key is None
|
||||
assert o.params_minus_pk is None
|
||||
|
||||
# Test with 1 primary key:
|
||||
class example2(self.cls):
|
||||
@@ -895,6 +898,8 @@ class test_Object(ClassChecker):
|
||||
assert pk.name == 'three'
|
||||
assert pk.primary_key is True
|
||||
assert o.params[2] is o.primary_key
|
||||
assert isinstance(o.params_minus_pk, plugable.NameSpace)
|
||||
assert list(o.params_minus_pk) == ['one', 'two', 'four']
|
||||
|
||||
# Test with multiple primary_key:
|
||||
class example3(self.cls):
|
||||
|
||||
Reference in New Issue
Block a user