def test_init_key_store_two_keys_pass(): stores = constraints.Stores() ks0 = constraints.InitKeyStore('TestKey') path = '/root-0,/test-0,' el = Element('test', path=path) ks0.to_python(el, path=el.path, stores=stores) ks1 = constraints.InitKeyStore('TestKey') path = '/root-0,/test-1,' ks1.to_python(None, path=path, stores=stores) expected = {'TestKey:/root-0,/test-1,': {}, 'TestKey:/root-0,/test-0,': {}} nose.tools.eq_(stores.keyStore.keys, expected)
def test_key_value_count_1_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('TestKey') ks.to_python(None, path='/', stores=stores) stores.keyStore.add_value('TestKey', '/', 'TestKey0', '/ads/cgfh') actual = stores.keyStore.key_value_count('TestKey', '/') nose.tools.eq_(actual, 1)
def test_key_store_add_value_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('TestKey') ks.to_python(None, path='/', stores=stores) stores.keyStore.add_value('TestKey', '/', 'key_value', '/ads/cgfh') expected = {'TestKey:/': {'key_value': '/ads/cgfh'}} nose.tools.eq_(stores.keyStore.keys, expected)
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_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_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_key_name_two_keys_pass(): ks = constraints.InitKeyStore('Key2') stores = constraints.Stores() root_path = '/root-0,' ks.to_python(None, path=root_path, stores=stores) u_name = constraints.KeyName(key_names='Key1 Key2'.split(), level=1) key_path = root_path + '/child-1,prefixed:name' actual = u_name.to_python('prefixed:name', path=key_path, stores=stores) nose.tools.eq_(actual, 'prefixed:name')
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_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_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_match_refs_value_not_found_fail(): stores = constraints.Stores() root_element = Element('root', value=None, path='/component-0,test') ref_element = Element( 'memoryMapRef', value='myMemoryMap', path='/component-0,test/busInterface-0,/memoryMapRef-0,@memoryMapRef') constraints.InitKeyStore('memoryMapKey').to_python(root_element, path=root_element.path, stores=stores) kr = constraints.SetupKeyRefsStore('memoryMapKey') kr.to_python(ref_element, stores=stores) constraints.match_refs(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_key_sub_class_name_two_keys_pass(): class TestKeyName(constraints.KeyName): key_names = 'Key1 Key2'.split() refer_key_name = 'referKey' level = 1 ks = constraints.InitKeyStore('Key2') stores = constraints.Stores() root_path = '/root-0,' ks.to_python(None, path=root_path, stores=stores) u_name = TestKeyName() key_path = root_path + '/child-1,prefixed:name' actual = u_name.to_python('prefixed:name', path=key_path, stores=stores) nose.tools.eq_(stores.refStore.refs, [ constraints.KeyRef(key_name='referKey', key_value='prefixed:name', ref_path='/root-0,/child-1,prefixed:name') ])
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_init_key_store_no_key_fail(): constraints.InitKeyStore('')
def test_match_ref_key_value_not_found_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('key_name') ks.to_python(None, path='/', stores=stores) stores.keyStore.match_ref('key_name', 'field220')
def test_match_ref_nonexistent_key_name_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('key_name') ks.to_python(None, path='/', stores=stores) stores.keyStore.match_ref('key_name', 'field22')
def test_init_key_store_pass(): stores = constraints.Stores() ks = constraints.InitKeyStore('TestKey') path = '/root-0,/test' ks.to_python(None, path=path, stores=stores) nose.tools.eq_(stores.keyStore.keys, {'TestKey:/root-0,/test': {}})
def test_init_key_store_add_duplicate_key_name_fail(): stores = constraints.Stores() ks = constraints.InitKeyStore('TestKeys') path = '/root-0,' ks.to_python(None, path=path, stores=stores) ks.to_python(None, path=path, stores=stores)