python-tatuclient/designateclient/functionaltests/v2/test_tsigkeys.py
Rudolf Vriend b741282eaf Add tsig key support to python-designateclient
This fix adds support for the designate tsig keys api to
python-designateclient.

It will add tsigkey related crud commands to the openstackclient.

Change-Id: I84336c3aca85ca62771fd2115481eda32ee980d2
Closes-Bug: #1702506
2017-07-07 14:16:30 +02:00

91 lines
3.7 KiB
Python

"""
Copyright 2017 SAP SE
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.
"""
from tempest.lib.exceptions import CommandFailed
from designateclient.functionaltests.base import BaseDesignateTest
from designateclient.functionaltests.datagen import random_tsigkey_name
from designateclient.functionaltests.datagen import random_tsigkey_secret
from designateclient.functionaltests.datagen import random_zone_name
from designateclient.functionaltests.v2.fixtures import TSIGKeyFixture
from designateclient.functionaltests.v2.fixtures import ZoneFixture
class TestTSIGKey(BaseDesignateTest):
def setUp(self):
super(TestTSIGKey, self).setUp()
self.ensure_tsigkey_exists('com')
self.zone = self.useFixture(ZoneFixture(
name=random_zone_name(),
email='test@example.com',
)).zone
tsig_name = random_tsigkey_name()
tsig_algorithm = "hmac-sha256"
tsig_secret = random_tsigkey_secret()
tsig_scope = 'ZONE'
self.tsig = self.useFixture(TSIGKeyFixture(
name=tsig_name,
algorithm=tsig_algorithm,
secret=tsig_secret,
scope=tsig_scope,
resource_id=self.zone.id
)).tsig
self.assertEqual(self.tsig.name, tsig_name)
self.assertEqual(self.tsig.algorithm, tsig_algorithm)
self.assertEqual(self.tsig.secret, tsig_secret)
self.assertEqual(self.tsig.scope, tsig_scope)
self.assertEqual(self.tsig.resource_id, self.zone.id)
def test_tsigkey_list(self):
tsigkeys = self.clients.as_user('admin').tsigkey_list()
self.assertGreater(len(tsigkeys), 0)
def test_tsigkey_create_and_show(self):
tsigkey = self.clients.as_user('admin').tsigkey_show(self.tsigkey.id)
self.assertEqual(tsigkey.name, self.tsigkey.name)
self.assertEqual(tsigkey.created_at, self.tsigkey.created_at)
self.assertEqual(tsigkey.id, self.tsigkey.id)
self.assertEqual(self.tsig.algorithm, self.tsig_algorithm)
self.assertEqual(self.tsig.secret, self.tsig_secret)
self.assertEqual(self.tsig.scope, self.tsig_scope)
self.assertEqual(self.tsig.resource_id, self.zone.id)
self.assertEqual(tsigkey.updated_at, self.tsigkey.updated_at)
def test_tsigkey_delete(self):
client = self.clients.as_user('admin')
client.tsigkey_delete(self.tsigkey.id)
self.assertRaises(CommandFailed, client.tsigkey_show, self.tsigkey.id)
def test_tsigkey_set(self):
client = self.clients.as_user('admin')
updated_name = random_tsigkey_name('updated')
tsigkey = client.tsigkey_set(self.tsigkey.id, name=updated_name,
secret='An updated tsigsecret')
self.assertEqual(tsigkey.secret, 'An updated tsigsecret')
self.assertEqual(tsigkey.name, updated_name)
class TestTSIGKeyNegative(BaseDesignateTest):
def test_tsigkey_invalid_commmand(self):
client = self.clients.as_user('admin')
self.assertRaises(CommandFailed, client.openstack,
'tsigkey notacommand')
def test_tsigkey_create_invalid_flag(self):
client = self.clients.as_user('admin')
self.assertRaises(CommandFailed, client.openstack,
'tsigkey create --notanoption "junk"')