From 2e47d8704fa0fe56ced38ddb4fc94f111079bd82 Mon Sep 17 00:00:00 2001 From: yayogev Date: Wed, 21 Mar 2018 17:31:54 +0200 Subject: Python 3.4 backwards compatibility (for 'verify' job) cherry-picked from internal commit by ilia on 07/02/2018 19:49 Change-Id: I03caf42492785a9af5e8301ca202b00a7b4af787 Signed-off-by: yayogev --- app/messages/message.py | 40 ++++++++++++---------- .../api/responders_test/test_data/clique_types.py | 4 +-- app/utils/util.py | 13 ++++--- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/app/messages/message.py b/app/messages/message.py index eeef329..dd4c1d3 100644 --- a/app/messages/message.py +++ b/app/messages/message.py @@ -8,9 +8,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 # ############################################################################### import datetime -from typing import Union -from bson import ObjectId +from utils.util import merge_dicts class Message: @@ -23,8 +22,8 @@ class Message: msg: dict, source: str, env: str = None, - object_id: Union[str, ObjectId] = None, - display_context: Union[str, ObjectId] = None, + object_id=None, + display_context=None, level: str = DEFAULT_LEVEL, object_type: str = None, ts: datetime = None, @@ -52,18 +51,21 @@ class Message: self.extra = kwargs def get(self): - return { - "id": self.id, - "environment": self.environment, - "source_system": self.source_system, - "related_object": self.related_object, - "related_object_type": self.related_object_type, - "display_context": self.display_context, - "level": self.level, - "message": self.message, - "timestamp": self.timestamp, - "received_timestamp": self.received_timestamp, - "finished_timestamp": self.finished_timestamp, - "viewed": self.viewed, - **self.extra - } + return merge_dicts( + self.extra, + { + "id": self.id, + "environment": self.environment, + "source_system": self.source_system, + "related_object": self.related_object, + "related_object_type": self.related_object_type, + "display_context": self.display_context, + "level": self.level, + "message": self.message, + "timestamp": self.timestamp, + "received_timestamp": self.received_timestamp, + "finished_timestamp": self.finished_timestamp, + "viewed": self.viewed + } + ) + diff --git a/app/test/api/responders_test/test_data/clique_types.py b/app/test/api/responders_test/test_data/clique_types.py index 0791bdf..4d55c8b 100644 --- a/app/test/api/responders_test/test_data/clique_types.py +++ b/app/test/api/responders_test/test_data/clique_types.py @@ -11,6 +11,7 @@ from test.api.responders_test.test_data import base from test.api.responders_test.test_data.base import WRONG_MECHANISM_DRIVER, \ CORRECT_MECHANISM_DRIVER, CORRECT_TYPE_DRIVER, WRONG_TYPE_DRIVER, \ CORRECT_DISTRIBUTION, CORRECT_DIST_VER +from utils.util import merge_dicts URL = "/clique_types" @@ -61,8 +62,7 @@ CLIQUE_TYPES_WITH_SPECIFIC_ID = [ ] CLIQUE_TYPES_WITH_SPECIFIC_CONFIGURATION = [ - get_payload(update={'id': SAMPLE_IDS[0], - **TEST_CONFIGURATION}, + get_payload(update=merge_dicts(TEST_CONFIGURATION, {'id': SAMPLE_IDS[0]}), delete=['environment']) ] diff --git a/app/utils/util.py b/app/utils/util.py index 17a31c0..788eba9 100644 --- a/app/utils/util.py +++ b/app/utils/util.py @@ -9,8 +9,6 @@ ############################################################################### import importlib import signal -from argparse import Namespace -from typing import Dict, Callable import os import re @@ -129,8 +127,8 @@ def generate_object_ids(keys, obj): # and convert them to dict to enforce uniformity. # Throws a TypeError if arguments can't be converted to dict. def setup_args(args: dict, - defaults: Dict[str, object], - get_cmd_args: Callable[[], Namespace] = None): + defaults, + get_cmd_args=None): if defaults is None: defaults = {} @@ -171,3 +169,10 @@ def decode_aci_dn(object_id): def get_object_path_part(path: str, part_name: str): match = re.match(".*/{}/(.+?)/.*".format(part_name), path) return match.group(1) if match else None + + +def merge_dicts(*dicts): + result = {} + for dictionary in dicts: + result.update(dictionary) + return result -- cgit 1.2.3-korg