This patch adds bindings to read the datasource-drivers config/schema from congress server. It also changes several methods so the look ups are now done by id instead of name. We needed to change this in the server api so we can have a multi tenant api. Change-Id: Ib01efb0334b43a7dbf7bda47cf1f1304fa01b91f
102 lines
3.4 KiB
Python
102 lines
3.4 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
import mock
|
|
|
|
from congressclient.osc.v1 import driver
|
|
from congressclient.tests import common
|
|
|
|
|
|
class TestListDrivers(common.TestCongressBase):
|
|
|
|
def test_list_drivers(self):
|
|
arglist = [
|
|
]
|
|
verifylist = [
|
|
]
|
|
response = {
|
|
"results": [{"id": "neutronv2",
|
|
"description": "this does blah.."}]
|
|
}
|
|
lister = mock.Mock(return_value=response)
|
|
self.app.client_manager.congressclient.list_drivers = lister
|
|
cmd = driver.ListDrivers(self.app, self.namespace)
|
|
|
|
parsed_args = self.check_parser(cmd, arglist, verifylist)
|
|
result = cmd.take_action(parsed_args)
|
|
|
|
lister.assert_called_with()
|
|
self.assertEqual(['id', 'description'], result[0])
|
|
|
|
|
|
class TestShowDriverSchema(common.TestCongressBase):
|
|
|
|
def test_show_driver_shema(self):
|
|
arglist = [
|
|
"neutronv2"
|
|
]
|
|
verifylist = [
|
|
('driver', "neutronv2")
|
|
]
|
|
|
|
response = {
|
|
"tables":
|
|
[{'table_id': 'ports',
|
|
'columns': [{"name": "name", "description": "None"},
|
|
{"name": "status", "description": "None"},
|
|
{"name": "id", "description": "None"}]},
|
|
{'table_id': 'routers',
|
|
'columns': [{"name": "name", "description": "None"},
|
|
{"name": "floating_ip", "description": "None"},
|
|
{"name": "id", "description": "None"}]}]
|
|
}
|
|
lister = mock.Mock(return_value=response)
|
|
self.app.client_manager.congressclient.show_driver = lister
|
|
cmd = driver.ShowDriverSchema(self.app, self.namespace)
|
|
|
|
parsed_args = self.check_parser(cmd, arglist, verifylist)
|
|
result = cmd.take_action(parsed_args)
|
|
|
|
lister.assert_called_with("neutronv2")
|
|
self.assertEqual(['table', 'columns'], result[0])
|
|
|
|
|
|
class TestShowDriverConfig(common.TestCongressBase):
|
|
|
|
def test_show_driver_config(self):
|
|
arglist = [
|
|
"neutronv2"
|
|
]
|
|
verifylist = [
|
|
('driver', "neutronv2")
|
|
]
|
|
|
|
response = {
|
|
"tables": [],
|
|
'id': 'aabbcc',
|
|
'description': 'foobar',
|
|
'config': {'password': 'password'},
|
|
}
|
|
mocker = mock.Mock(return_value=response)
|
|
self.app.client_manager.congressclient.show_driver = mocker
|
|
cmd = driver.ShowDriverConfig(self.app, self.namespace)
|
|
|
|
parsed_args = self.check_parser(cmd, arglist, verifylist)
|
|
result = list(cmd.take_action(parsed_args))
|
|
|
|
mocker.assert_called_with("neutronv2")
|
|
filtered = [('config', 'description', 'id'),
|
|
(response['config'], response['description'],
|
|
response['id'])]
|
|
self.assertEqual(filtered, result)
|