better performance in find_firsts

_is_build_cache not set in dictionary storage
This commit is contained in:
2014-11-10 21:00:30 +01:00
parent 4217508f3f
commit f03cbeadb7
4 changed files with 57 additions and 34 deletions

View File

@ -18,6 +18,13 @@ def make_description():
return OptionDescription('od1', '', [u1, u2, u3])
def test_cache_config():
od1 = make_description()
assert od1.impl_already_build_caches() == False
c = Config(od1)
assert od1.impl_already_build_caches() == True
def test_cache():
od1 = make_description()
c = Config(od1)

View File

@ -153,12 +153,17 @@ def test_meta_meta_set():
meta2.setattrs('od1.i6', 7)
assert conf1.od1.i1 == conf2.od1.i1 == 7
assert conf1.getowner(conf1.unwrap_from_path('od1.i1')) is conf2.getowner(conf2.unwrap_from_path('od1.i1')) is owners.user
assert [conf1, conf2] == meta2.find_firsts(byname='i1', byvalue=7)
assert [conf1, conf2] == meta2.find_firsts(byname='i1', byvalue=7, type_='config')
assert ['od1.i1', 'od1.i1'] == meta2.find_firsts(byname='i1', byvalue=7, type_='path')
conf1.od1.i1 = 8
assert [conf1, conf2] == meta2.find_firsts(byname='i1')
assert [conf2] == meta2.find_firsts(byname='i1', byvalue=7)
assert [conf1] == meta2.find_firsts(byname='i1', byvalue=8)
assert [conf1, conf2] == meta2.find_firsts(byname='i5', byvalue=2)
assert [conf1, conf2] == meta2.find_firsts(byname='i1', type_='config')
assert ['od1.i1', 'od1.i1'] == meta2.find_firsts(byname='i1', type_='path')
assert [conf2] == meta2.find_firsts(byname='i1', byvalue=7, type_='config')
assert ['od1.i1'] == meta2.find_firsts(byname='i1', byvalue=7, type_='path')
assert [conf1] == meta2.find_firsts(byname='i1', byvalue=8, type_='config')
assert ['od1.i1'] == meta2.find_firsts(byname='i1', byvalue=8, type_='path')
assert [conf1, conf2] == meta2.find_firsts(byname='i5', byvalue=2, type_='config')
assert ['od1.i5', 'od1.i5'] == meta2.find_firsts(byname='i5', byvalue=2, type_='path')
raises(AttributeError, "meta2.find_firsts(byname='i1', byvalue=10)")
raises(AttributeError, "meta2.find_firsts(byname='not', byvalue=10)")
raises(AttributeError, "meta2.find_firsts(byname='i6')")
@ -179,6 +184,16 @@ def test_not_meta():
assert conf1.getowner(conf1.unwrap_from_path('od1.i1')) is conf2.getowner(conf2.unwrap_from_path('od1.i1')) is owners.user
def test_group_find_firsts():
i1 = IntOption('i1', '')
od1 = OptionDescription('od1', '', [i1])
od2 = OptionDescription('od2', '', [od1])
conf1 = Config(od2)
conf2 = Config(od2)
meta = GroupConfig([conf1, conf2])
conf1, conf2 = meta.find_firsts(byname='i1')
def test_meta_path():
meta = make_description()
assert meta._impl_path is None