reduce memory usage

This commit is contained in:
2014-10-25 22:11:31 +02:00
parent 58c22aa70f
commit 9f3d676280
9 changed files with 427 additions and 294 deletions

View File

@ -343,4 +343,4 @@ def test_config_od_function():
print cfg.impl_get_opt_by_path()
except AttributeError, err:
assert str(err) == _('unknown Option {0} in OptionDescription {1}'
'').format('impl_get_opt_by_path', descr._name)
'').format('impl_get_opt_by_path', descr.impl_getname())

View File

@ -12,7 +12,7 @@ from py.test import raises
def return_value(value=None):
return value
return value
def _get_slots(opt):
@ -52,14 +52,20 @@ def _diff_opt(opt1, opt2):
val2 = None
try:
val1 = getattr(opt1, attr)
except:
msg1 = "exists"
except Exception, err:
err1 = True
msg1 = "not exists"
try:
val2 = getattr(opt2, attr)
msg2 = "exists"
except:
err2 = True
assert err1 == err2
msg2 = "not exists"
if not err1 == err2:
raise ValueError("{0} {1} before but {2} after for {3}".format(attr, msg1, msg2, opt1.impl_getname()))
if val1 is None:
assert val1 == val2
elif attr == '_children':
@ -81,19 +87,23 @@ def _diff_opt(opt1, opt2):
assert consistency[0] == val2[index][0]
for idx, opt in enumerate(consistency[1]):
assert opt._name == val2[index][1][idx]._name
elif attr == '_callback':
assert val1 == val2
elif attr == '_callback_params':
if val1 is not None:
for key, values in val1.items():
for idx, value in enumerate(values):
if isinstance(value, tuple):
assert val1[key][idx][0]._name == val2[key][idx][0]._name
assert val1[key][idx][1] == val2[key][idx][1]
elif attr == '_val_call':
for idx, v in enumerate(val1):
if v is None:
assert val2[idx] is None
else:
assert v[0] == val2[idx][0]
if len(v) == 2:
if v[1] is not None:
for key, values in v[1].items():
for i, value in enumerate(values):
if isinstance(value, tuple):
assert v[1][key][i][0].impl_getname() == val2[idx][1][key][i][0].impl_getname()
assert v[1][key][i][1] == val2[idx][1][key][i][1]
else:
assert v[1][key][i] == val2[idx][1][key][i]
else:
assert val1[key][idx] == val2[key][idx]
else:
assert val1 == val2
assert v[1] == val2[idx][1]
elif attr == '_master_slaves':
assert val1.master.impl_getname() == val2.master.impl_getname()
sval1 = [opt.impl_getname() for opt in val1.slaves]