Commit 29ded7bf authored by Ching Kuo's avatar Ching Kuo
Browse files

Enable Test Coverage and Add New Test

This commit enables code coverage and added unit tests for metrics
message verification.

Change-Id: I526c8ce8583f0df6cb0323e5ce6bc98ecf310f4f
parent d510ff4d
......@@ -41,6 +41,7 @@ pip-log.txt
.stestr/
test.sock
.venv
cover/
# Translations
*.mo
......
......@@ -17,11 +17,13 @@ import json
class UnSupportedMetricActionError(Exception):
pass
def __init__(self, message=None):
self.message = message
class MetricValidationError(Exception):
pass
def __init__(self, message=None):
self.message = message
class MetricAction():
......
# -*- coding: utf-8 -*-
# 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.
"""
test_message_validation
--------------------
Check that messages validation is working properly
"""
import json
from oslo_metrics import message_type
from oslotest import base
class TestMetricValidation(base.BaseTestCase):
def setUp(self):
super(TestMetricValidation, self).setUp()
def assertRaisesWithMessage(self, message, func, *args, **kwargs):
try:
func(*args, **kwargs)
self.assertFail()
except Exception as e:
self.assertEqual(message, e.message)
def test_message_validation(self):
metric = dict()
message = "module should be specified"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['module'] = "test"
message = "name should be specified"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['name'] = "test"
message = "action should be specified"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['action'] = "test"
message = "labels should be specified"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['labels'] = "test_label"
message = "action need 'value' field"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['action'] = {"value": "1"}
message = "action need 'action' field"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
metric['action']['action'] = "test"
message = "action should be choosen from ['inc', 'observe']"
self.assertRaisesWithMessage(
message, message_type.Metric.from_json, json.dumps(metric))
......@@ -6,3 +6,4 @@ oslotest>=3.2.0 # Apache-2.0
# Bandit security code scanner
bandit>=1.1.0,<1.6.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
......@@ -33,15 +33,14 @@ commands =
rm -fr doc/build
sphinx-build -W --keep-going -b html doc/source doc/build/html
# NOTE(hberaud): Not yet activated
#[testenv:cover]
#setenv =
# PYTHON=coverage run --source oslo_cache --parallel-mode
#commands =
# stestr run {posargs}
# coverage combine
# coverage html -d cover
# coverage xml -o cover/coverage.xml
[testenv:cover]
setenv =
PYTHON=coverage run --source oslo_metrics --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[flake8]
show-source = True
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment