def test_sort_by_deps_not_included(self, open_url_mock): calls = [ MockResponse('get_system_setting', {'operation': 'version'}, 200, '{"result": "4.5"}'), MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), get_schema_response('/test:deps') ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) parent = "/test:deps" schema_data = json.loads(SCHEMA_DATA['/test:deps']) schema = schema_data['data'] values = {'a': '1', 'b': '2'} vb = nso.ValueBuilder( nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False)) vb.build(parent, None, values, schema) values = list(vb.values) self.assertEqual(2, len(values)) value = values[0] self.assertEqual('{0}/a'.format(parent), value.path) self.assertEqual('1', value.value) value = values[1] self.assertEqual('{0}/b'.format(parent), value.path) self.assertEqual('2', value.value) self.assertEqual(0, len(calls))
def test_leaf_list_type_45(self, open_url_mock): calls = [ MockResponse('get_system_setting', {'operation': 'version'}, 200, '{"result": "4.5"}'), MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), get_schema_response('/test:test/device-list') ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) parent = "/test:test" schema_data = json.loads(SCHEMA_DATA['/test:test']) schema = schema_data['data'] vb = nso.ValueBuilder( nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False)) vb.build(parent, None, {'device-list': ['one', 'two']}, schema) values = list(vb.values) self.assertEqual(3, len(values)) value = values[0] self.assertEqual('{0}/device-list'.format(parent), value.path) self.assertEqual(nso.State.ABSENT, value.state) value = values[1] self.assertEqual('{0}/device-list{{one}}'.format(parent), value.path) self.assertEqual(nso.State.PRESENT, value.state) value = values[2] self.assertEqual('{0}/device-list{{two}}'.format(parent), value.path) self.assertEqual(nso.State.PRESENT, value.state) self.assertEqual(0, len(calls))
def test_identityref_leaf(self, open_url_mock): calls = [ MockResponse('get_system_setting', {'operation': 'version'}, 200, '{"result": "4.5"}'), MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), get_schema_response('/an:id-name-leaf'), MockResponse('get_module_prefix_map', {}, 200, '{{"result": {0}}}'.format(MODULE_PREFIX_MAP)) ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) parent = "/an:id-name-leaf" schema_data = json.loads(SCHEMA_DATA['/an:id-name-leaf']) schema = schema_data['data'] vb = nso.ValueBuilder( nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False)) vb.build(parent, None, 'ansible-nso:id-two', schema) values = list(vb.values) self.assertEqual(1, len(values)) value = values[0] self.assertEqual(parent, value.path) self.assertEqual('set', value.state) self.assertEqual('an:id-two', value.value) self.assertEqual(0, len(calls))
def test_exists_data_not_found(self, open_url_mock): calls = [ MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), MockResponse('exists', {'path': '/list{missing-parent}/list{child}'}, 200, '{"error":{"type":"data.not_found"}}') ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) client = nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False) self.assertEqual(False, client.exists('/list{missing-parent}/list{child}')) self.assertEqual(0, len(calls))
def test_exists(self, open_url_mock): calls = [ MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), MockResponse('exists', {'path': '/exists'}, 200, '{"result": {"exists": true}}'), MockResponse('exists', {'path': '/not-exists'}, 200, '{"result": {"exists": false}}') ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) client = nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False) self.assertEqual(True, client.exists('/exists')) self.assertEqual(False, client.exists('/not-exists')) self.assertEqual(0, len(calls))
def test_nested_choice(self, open_url_mock): calls = [ MockResponse('get_system_setting', {'operation': 'version'}, 200, '{"result": "4.5"}'), MockResponse('new_trans', {}, 200, '{"result": {"th": 1}}'), get_schema_response('/test:test'), MockResponse('exists', {'path': '/test:test{direct}'}, 200, '{"result": {"exists": true}}'), MockResponse('exists', {'path': '/test:test{nested}'}, 200, '{"result": {"exists": true}}') ] open_url_mock.side_effect = lambda *args, **kwargs: mock_call( calls, *args, **kwargs) parent = "/test:test" schema_data = json.loads(SCHEMA_DATA['/test:test']) schema = schema_data['data'] vb = nso.ValueBuilder( nso.JsonRpc('http://localhost:8080/jsonrpc', 10, False)) vb.build(parent, None, [{ 'name': 'direct', 'direct-child': 'direct-value' }, { 'name': 'nested', 'nested-child': 'nested-value' }], schema) values = list(vb.values) self.assertEqual(2, len(values)) value = values[0] self.assertEqual('{0}{{direct}}/direct-child'.format(parent), value.path) self.assertEqual('set', value.state) self.assertEqual('direct-value', value.value) value = values[1] self.assertEqual('{0}{{nested}}/nested-child'.format(parent), value.path) self.assertEqual('set', value.state) self.assertEqual('nested-value', value.value) self.assertEqual(0, len(calls))