
* remove unused methods * use testools assert exceptions * use tearDown where possible * redundant str() Change-Id: I18af00599461ead7bf9084168aeed7321adfd4c0
149 lines
5.6 KiB
Python
149 lines
5.6 KiB
Python
# Copyright 2017 Nokia
|
|
#
|
|
# 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 oslo_log import log as logging
|
|
from testtools import matchers
|
|
|
|
from vitrage_tempest_plugin.tests.base import BaseVitrageTempest
|
|
from vitrageclient.exceptions import ClientException
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
URL = 'url'
|
|
REGEX_FILTER = 'regex_filter'
|
|
HEADERS = 'headers'
|
|
HEADERS_PROPS = '{"content": "application/json"}'
|
|
REGEX_PROPS = '{"name": "e2e.*"}'
|
|
|
|
|
|
class TestWebhook(BaseVitrageTempest):
|
|
"""Webhook test class for Vitrage API tests."""
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(TestWebhook, cls).setUpClass()
|
|
cls.pre_test_webhook_count = \
|
|
len(cls.vitrage_client.webhook.list())
|
|
|
|
def test_add_webhook(self):
|
|
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count),
|
|
'Amount of webhooks should be '
|
|
'the same as before the test')
|
|
|
|
created_webhook = self.vitrage_client.webhook.add(
|
|
url="https://www.test.com",
|
|
regex_filter=REGEX_PROPS,
|
|
headers=HEADERS_PROPS
|
|
)
|
|
|
|
self.assertIsNone(created_webhook.get('ERROR'), 'webhook not '
|
|
'created')
|
|
self.assertEqual(created_webhook[HEADERS],
|
|
HEADERS_PROPS,
|
|
'headers not created correctly')
|
|
self.assertEqual(created_webhook[REGEX_FILTER],
|
|
REGEX_PROPS,
|
|
'regex not created correctly')
|
|
self.assertEqual(created_webhook[URL],
|
|
"https://www.test.com",
|
|
'URL not created correctly')
|
|
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count + 1))
|
|
self.vitrage_client.webhook.delete(
|
|
created_webhook['id'])
|
|
|
|
def test_delete_webhook(self):
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count),
|
|
'Amount of webhooks should '
|
|
'be the same as before the test')
|
|
|
|
created_webhook = self.vitrage_client.webhook.add(
|
|
url="https://www.test.com",
|
|
regex_filter=REGEX_PROPS,
|
|
headers=HEADERS_PROPS
|
|
)
|
|
|
|
created_webhook = self.vitrage_client.webhook.delete(
|
|
id=created_webhook['id'])
|
|
self.assertIsNotNone(created_webhook.get('SUCCESS'),
|
|
'failed to delete')
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count),
|
|
'No webhooks should exist after deletion')
|
|
|
|
def test_delete_non_existing_webhook(self):
|
|
self.assertRaises(ClientException,
|
|
self.vitrage_client.webhook.delete,
|
|
'non existent')
|
|
|
|
def test_list_webhook(self):
|
|
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count),
|
|
'Amount of webhooks should be '
|
|
'the same as before the test')
|
|
|
|
created_webhook = self.vitrage_client.webhook.add(
|
|
url="https://www.test.com",
|
|
regex_filter=REGEX_PROPS,
|
|
headers=HEADERS_PROPS
|
|
)
|
|
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count + 1))
|
|
self.assertEqual(created_webhook[HEADERS], webhooks[0][HEADERS])
|
|
self.assertEqual(created_webhook['id'], webhooks[0]['id'])
|
|
self.assertEqual(created_webhook[REGEX_FILTER],
|
|
webhooks[0][REGEX_FILTER])
|
|
|
|
self.vitrage_client.webhook.delete(created_webhook['id'])
|
|
|
|
def test_show_webhook(self):
|
|
webhooks = self.vitrage_client.webhook.list()
|
|
self.assertThat(webhooks,
|
|
matchers.HasLength(self.pre_test_webhook_count),
|
|
'Amount of webhooks should be '
|
|
'the same as before the test')
|
|
|
|
created_webhook = self.vitrage_client.webhook.add(
|
|
url="https://www.test.com",
|
|
regex_filter=REGEX_PROPS,
|
|
headers=HEADERS_PROPS
|
|
)
|
|
|
|
show_webhook = self.vitrage_client.webhook.show(created_webhook['id'])
|
|
|
|
self.assertIsNotNone(show_webhook, 'webhook not listed')
|
|
self.assertEqual(created_webhook[HEADERS],
|
|
show_webhook[HEADERS],
|
|
'headers mismatch')
|
|
self.assertEqual(created_webhook[REGEX_FILTER],
|
|
show_webhook[REGEX_FILTER],
|
|
'regex mismatch')
|
|
self.assertEqual(created_webhook[URL],
|
|
show_webhook[URL],
|
|
'URL mismatch')
|
|
|
|
self.vitrage_client.webhook.delete(created_webhook['id'])
|