From bcafbd64f743327f0f6d3cfdedf703cf873631ce Mon Sep 17 00:00:00 2001 From: mtakaki Date: Mon, 6 Jan 2020 07:40:11 -0800 Subject: [PATCH] 21 2 (#77) * 21 - Improving exception when an invalid type is used in the config * Bumping the version --- cachet_url_monitor/configuration.py | 3 ++ setup.py | 2 +- tests/configs/config.yml | 26 ++++++++++++ tests/configs/config_invalid_type.yml | 22 ++++++++++ tests/configs/config_multiple_urls.yml | 28 +++++++++++++ tests/test_configuration.py | 58 +++++++++++++++++++++++++- 6 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 tests/configs/config.yml create mode 100644 tests/configs/config_invalid_type.yml create mode 100644 tests/configs/config_multiple_urls.yml diff --git a/cachet_url_monitor/configuration.py b/cachet_url_monitor/configuration.py index 8a343c0..dcd5ce2 100644 --- a/cachet_url_monitor/configuration.py +++ b/cachet_url_monitor/configuration.py @@ -329,6 +329,9 @@ class Expectation(object): 'LATENCY': Latency, 'REGEX': Regex } + if configuration['type'] not in expectations: + raise ConfigurationValidationError(f"Invalid type: {configuration['type']}") + return expectations.get(configuration['type'])(configuration) def __init__(self, configuration): diff --git a/setup.py b/setup.py index 753c8e1..a40b352 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup setup(name='cachet-url-monitor', - version='0.6.0', + version='0.6.1', description='Cachet URL monitor plugin', author='Mitsuo Takaki', author_email='mitsuotakaki@gmail.com', diff --git a/tests/configs/config.yml b/tests/configs/config.yml new file mode 100644 index 0000000..d514bf5 --- /dev/null +++ b/tests/configs/config.yml @@ -0,0 +1,26 @@ +endpoints: + - name: foo + url: http://localhost:8080/swagger + method: GET + header: + SOME-HEADER: SOME-VALUE + timeout: 0.01 + expectation: + - type: HTTP_STATUS + status_range: 200-300 + incident: MAJOR + - type: LATENCY + threshold: 1 + - type: REGEX + regex: '.*(