Files
deb-murano/murano/tests/dsl/test_execution.py
Stan Lagun ac21005828 Unit tests for contracts
in addition to unit tests:
* in MuranoObject parent property renamed to owner
* fixed ownership of temporary method arguments
* more descriptive exceptions in contracts and related places

Change-Id: I4ee491c5428a4a64a21ccb5b1947acac386eb78f
Closes-Bug: #1337225
Partial-Bug: #1316786
2014-07-03 19:18:10 +04:00

63 lines
2.2 KiB
Python

# Copyright (c) 2014 Mirantis, Inc.
#
# 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 murano.dsl import dsl_exception
from murano.dsl import exceptions
from murano.tests.dsl.foundation import object_model as om
from murano.tests.dsl.foundation import test_case
class TestExecution(test_case.DslTestCase):
def _load(self):
return self.new_runner(
om.Object('SampleClass1', stringProperty='STRING',
classProperty=om.Object(
'SampleClass2', class2Property='ANOTHER_STRING')))
def test_load(self):
self._load()
def test_load_failure(self):
self.assertRaises(
exceptions.ContractViolationException,
self.new_runner,
om.Object('SampleClass1'))
def test_trace(self):
runner = self._load()
self.assertEqual(self.traces, [])
runner.testTrace(123)
self.assertEqual(self.traces, [123, 'STRING', 'ANOTHER_STRING'])
runner.testTrace(321)
self.assertEqual(self.traces, [
123, 'STRING', 'ANOTHER_STRING',
321, 'STRING', 'ANOTHER_STRING'])
def test_exception(self):
class CustomException(Exception):
pass
def raise_exception():
raise CustomException()
self.register_function(raise_exception, 'raiseException')
runner = self._load()
self.assertRaises(CustomException, runner.testException)
runner.preserve_exception = True
self.assertRaises(dsl_exception.MuranoPlException,
runner.testException)
def test_return(self):
self.assertEqual(3, self._load().testReturn(3))