def test_check_keys_empty_value_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" ks.to_python(None, path=path, stores=stores) ck = constraints.CheckKeys(key_names='FieldKey', level=1) field = Element('field', path=path + '/field-2,field22') ck.to_python(field, stores=stores)
def test_check_keys_single_key_build_no_value_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" ks.build(path=path, stores=stores) ck = constraints.CheckKeys(key_names='FieldKey', level=1) field = Element('field', value='field22', path=path + '/field-2,field22') nose.tools.eq_(ck.build(path=field.path, stores=stores), 'FieldKey0')
def test_check_keys_path_mismatch_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" el = Element('reg', path=path) ks.to_python(el, path=path, stores=stores) ck = constraints.CheckKeys(key_names='FieldKey', level=1) field = Element('field', value='field22', path='/field-2,field22') ck.to_python(field, stores=stores)
def test_match_ref_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('key_name') path = '/root-0,' ks.to_python(None, path=path, stores=stores) ck = constraints.CheckKeys(key_names=['OtherKey', 'key_name'], level=1) field = Element('field', value='field22', path=path + '/field-2,field22') ck.to_python(field.value, path=field.path, stores=stores) instance_path = stores.keyStore.match_ref('key_name', 'field22') nose.tools.eq_(instance_path, path + '/field-2,field22')
def test_check_keys_three_keys_build_no_value_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" ks.build(path=path, stores=stores) ck = constraints.CheckKeys( key_names=['OtherKey', 'FieldKey', 'YetAnotherKey'], level=1) field = Element('field', value='field22', path=path + '/field-2,field22') actual = ck.build(path=field.path, stores=stores) nose.tools.eq_(actual, 'FieldKey0')
def test_check_keys_duplicate_value_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" ks.to_python(None, path=path, stores=stores) ck = constraints.CheckKeys(key_names='FieldKey', level=1) field0 = Element('field', value='field22', path=path + '/field-2,field22') field1 = Element('field', value='field22', path=path + '/field-12,field22') nose.tools.eq_(ck.to_python(field0, stores=stores), 'field22') ck.to_python(field1, stores=stores)
def test_check_keys_three_keys_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('FieldKey') path = "/register-0,reg6" ks.to_python(None, path=path, stores=stores) ck = constraints.CheckKeys( key_names=['OtherKey', 'FieldKey', 'YetAnotherKey'], level=1) field = Element('field', value='field22', path=path + '/field-2,field22') expected = { 'FieldKey:/register-0,reg6': { 'field22': '/register-0,reg6/field-2,field22' } } ck.to_python(field, stores=stores) nose.tools.eq_(stores.keyStore.keys, expected)
def test_match_refs_pass(): stores = constraints.Stores() root_element = Element('root', value=None, path='/component-0,test') key_element = Element( 'name', value='myMemoryMap', path='/component-0,test/memoryMap-0,myMemoryMap/name-0,') ref_element = Element( 'memoryMapRef', value='myMemoryMap', path='/component-0,test/busInterface-0,/memoryMapRef-0,@memoryMapRef') constraints.InitKeyStore('memoryMapKey').to_python(root_element, stores=stores) constraints.CheckKeys(key_names='memoryMapKey', level=2).to_python(key_element, stores=stores) kr = constraints.SetupKeyRefsStore('memoryMapKey') kr.to_python(ref_element, stores=stores) constraints.match_refs(stores) targets = { '/component-0,test/busInterface-0,/memoryMapRef-0,@memoryMapRef': '/component-0,test/memoryMap-0,myMemoryMap/name-0,' } nose.tools.eq_(stores.refStore.targets, targets)
def test_check_keys_wrong_keynames_type_fail(): constraints.CheckKeys(key_names=13, level=2)
def test_check_keys_level_type_fail(): constraints.CheckKeys(key_names=['OtherKey', 'FieldKey'], level='55')
def test_check_keys_no_level_fail(): constraints.CheckKeys(key_names=['OtherKey', 'FieldKey', 'YetAnotherKey'], level=None)