From 262799e3c04a09f41fcf1db261b2845aae05f24e Mon Sep 17 00:00:00 2001 From: liushuai Date: Thu, 29 Nov 2018 01:22:04 +0800 Subject: [PATCH] Convert trigger window from string to integer Closes-Bug: #1805755 Change-Id: Ib2da9cb008fad3f9d686a1409c83d98b7daebe68 --- karborclient/tests/unit/v1/test_triggers.py | 10 ++++++++-- karborclient/v1/triggers.py | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/karborclient/tests/unit/v1/test_triggers.py b/karborclient/tests/unit/v1/test_triggers.py index 8f3a6c4..6f9a684 100644 --- a/karborclient/tests/unit/v1/test_triggers.py +++ b/karborclient/tests/unit/v1/test_triggers.py @@ -12,6 +12,7 @@ import mock +from karborclient.common.apiclient import exceptions from karborclient.tests.unit import base from karborclient.tests.unit.v1 import fakes @@ -46,16 +47,21 @@ class TriggersTest(base.TestCaseShell): @mock.patch('karborclient.common.http.HTTPClient.json_request') def test_create_trigger(self, mock_request): mock_request.return_value = mock_request_return - cs.triggers.create('name', 'time', 'properties') + cs.triggers.create('name', 'time', {}) mock_request.assert_called_with( 'POST', '/triggers', data={ 'trigger_info': {'name': 'name', 'type': 'time', - 'properties': 'properties'}}, + 'properties': {}}}, headers={}) + def test_create_trigger_with_invalid_window(self): + self.assertRaises(exceptions.CommandError, + cs.triggers.create, + 'name', 'time', {'window': 'fake'}) + @mock.patch('karborclient.common.http.HTTPClient.raw_request') def test_delete_trigger(self, mock_request): mock_request.return_value = mock_request_return diff --git a/karborclient/v1/triggers.py b/karborclient/v1/triggers.py index 10d9605..7d0cab1 100644 --- a/karborclient/v1/triggers.py +++ b/karborclient/v1/triggers.py @@ -10,6 +10,7 @@ # License for the specific language governing permissions and limitations # under the License. +from karborclient.common.apiclient import exceptions from karborclient.common import base @@ -22,6 +23,12 @@ class TriggerManager(base.ManagerWithFind): resource_class = Trigger def create(self, name, type, properties): + if properties.get('window', None): + try: + properties['window'] = int(properties['window']) + except Exception: + msg = 'The trigger window is not integer' + raise exceptions.CommandError(msg) body = {'trigger_info': {'name': name, 'type': type, 'properties': properties,