deltafi 2.1.0__tar.gz → 2.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of deltafi might be problematic. Click here for more details.

Files changed (24) hide show
  1. {deltafi-2.1.0 → deltafi-2.2.0}/PKG-INFO +1 -1
  2. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/result.py +7 -1
  3. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/assertions.py +9 -1
  4. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/framework.py +3 -3
  5. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/timed_ingress.py +13 -8
  6. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/transform.py +1 -2
  7. {deltafi-2.1.0 → deltafi-2.2.0}/pyproject.toml +2 -2
  8. {deltafi-2.1.0 → deltafi-2.2.0}/README.md +0 -0
  9. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/__init__.py +0 -0
  10. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/action.py +0 -0
  11. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/actioneventqueue.py +0 -0
  12. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/actiontype.py +0 -0
  13. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/domain.py +0 -0
  14. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/exception.py +0 -0
  15. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/genericmodel.py +0 -0
  16. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/input.py +0 -0
  17. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/logger.py +0 -0
  18. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/metric.py +0 -0
  19. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/plugin.py +0 -0
  20. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/storage.py +0 -0
  21. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/__init__.py +0 -0
  22. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/compare_helpers.py +0 -0
  23. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/constants.py +0 -0
  24. {deltafi-2.1.0 → deltafi-2.2.0}/deltafi/test_kit/egress.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltafi
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary: SDK for DeltaFi plugins and actions
5
5
  License: Apache License, Version 2.0
6
6
  Keywords: deltafi
@@ -95,6 +95,7 @@ class IngressResultItem:
95
95
  self._did = str(uuid.uuid4())
96
96
  self.content = []
97
97
  self.metadata = {}
98
+ self.annotations = {}
98
99
  self.delta_file_name = delta_file_name
99
100
 
100
101
  @property
@@ -139,12 +140,17 @@ class IngressResultItem:
139
140
  segment_names.update(c.get_segment_names())
140
141
  return segment_names
141
142
 
143
+ def annotate(self, key: str, value: str):
144
+ self.annotations[key] = value
145
+ return self
146
+
142
147
  def response(self):
143
148
  return {
144
149
  'did': self._did,
145
150
  'deltaFileName': self.delta_file_name,
146
151
  'metadata': self.metadata,
147
- 'content': [content.json() for content in self.content]
152
+ 'content': [content.json() for content in self.content],
153
+ 'annotations': self.annotations
148
154
  }
149
155
 
150
156
 
@@ -29,10 +29,18 @@ def assert_equal_with_label(e, a, l):
29
29
  assert e == a, f"{l}. Expected:\n<<{e}>>\nBut was:\n<<{a}>>"
30
30
 
31
31
 
32
+ def assert_equal_short(e, a, l):
33
+ assert e == a, f"{l}. E:{e}, A::{a}"
34
+
35
+
32
36
  def assert_equal_len(e, a):
33
37
  assert len(e) == len(a), f"{len(e)} != {len(a)}"
34
38
 
35
39
 
40
+ def assert_equal_len_with_label(e, a, l):
41
+ assert len(e) == len(a), f"{l}. {len(e)} != {len(a)}"
42
+
43
+
36
44
  def assert_key_in(k, m):
37
45
  assert k in m, f"{k} not found"
38
46
 
@@ -45,4 +53,4 @@ def assert_keys_and_values(expected: Dict, actual: Dict):
45
53
  for key in expected:
46
54
  assert_key_in(key, actual)
47
55
  if expected[key] != IGNORE_VALUE:
48
- assert_equal(expected[key], actual[key])
56
+ assert_equal_short(expected[key], actual[key], f"invalid value for key {key}")
@@ -350,13 +350,13 @@ class ActionTest(ABC):
350
350
 
351
351
  @staticmethod
352
352
  def compare_one_metric(expected: Metric, result: Metric):
353
- assert expected.name == result.name
354
- assert_equal_with_label(expected.value, result.value, expected.name)
353
+ assert_equal_short(expected.name, result.name, "invalid metric name")
354
+ assert_equal_short(expected.value, result.value, f"invalid metric value for {expected.name}")
355
355
  assert_keys_and_values(expected.tags, result.tags)
356
356
 
357
357
  def compare_metrics(self, expected_metrics: List[Metric], results: List[Metric]):
358
358
  if len(expected_metrics) > 0:
359
- assert_equal_len(expected_metrics, results)
359
+ assert_equal_len_with_label(expected_metrics, results, "invalid metrics count")
360
360
  for index, expected in enumerate(expected_metrics):
361
361
  self.compare_one_metric(expected, results[index])
362
362
 
@@ -19,7 +19,6 @@
19
19
  from typing import List
20
20
 
21
21
  from deltafi.result import IngressResult, IngressResultItem, IngressStatusEnum
22
-
23
22
  from .assertions import *
24
23
  from .framework import TestCaseBase, ActionTest, IOContent
25
24
 
@@ -44,12 +43,15 @@ class TimedIngressTestCase(TestCaseBase):
44
43
  self.status = status
45
44
  self.status_message = status_message
46
45
 
47
- def add_ingress_result_item(self, content: List[IOContent], metadata: Dict, name: str = None):
46
+ def add_ingress_result_item(self, content: List[IOContent], metadata: Dict, name: str = None, annotations: Dict = None):
47
+ if annotations is None:
48
+ annotations = {}
48
49
  self.results.append(
49
50
  {
50
51
  'content': content,
51
52
  'metadata': metadata,
52
- 'name': name
53
+ 'name': name,
54
+ 'annotations': annotations
53
55
  }
54
56
  )
55
57
 
@@ -74,12 +76,12 @@ class TimedIngressActionTest(ActionTest):
74
76
  self.assert_ingress_result(test_case, result)
75
77
 
76
78
  def assert_ingress_result(self, test_case: TimedIngressTestCase, result: IngressResult):
77
- assert_equal(test_case.memo, result.memo)
78
- assert_equal(test_case.execute_immediate, result.execute_immediate)
79
- assert_equal(test_case.status, result.status)
80
- assert_equal(test_case.status_message, result.status_message)
79
+ assert_equal_short(test_case.memo, result.memo, "invalid memo")
80
+ assert_equal_short(test_case.execute_immediate, result.execute_immediate, "invalid execute_immediate")
81
+ assert_equal_short(test_case.status, result.status, "invalid status")
82
+ assert_equal_with_label(test_case.status_message, result.status_message, "invalid status_message")
81
83
 
82
- assert_equal_len(test_case.results, result.ingress_result_items)
84
+ assert_equal_len_with_label(test_case.results, result.ingress_result_items, "item count mismatch")
83
85
  for index, ingress_item in enumerate(result.ingress_result_items):
84
86
  self.compare_one_ingress_item(test_case, ingress_item, index)
85
87
  expected = test_case.results[index]
@@ -94,3 +96,6 @@ class TimedIngressActionTest(ActionTest):
94
96
 
95
97
  # Check metadata
96
98
  assert_keys_and_values(expected['metadata'], result.metadata)
99
+
100
+ # Check annotations
101
+ assert_keys_and_values(expected['annotations'], result.annotations)
@@ -19,7 +19,6 @@
19
19
  from typing import List
20
20
 
21
21
  from deltafi.result import TransformResult, TransformResults
22
-
23
22
  from .assertions import *
24
23
  from .framework import TestCaseBase, ActionTest, IOContent
25
24
 
@@ -74,7 +73,7 @@ class TransformActionTest(ActionTest):
74
73
  self.assert_transform_results(test_case, result)
75
74
 
76
75
  def assert_transform_results(self, test_case: TransformTestCase, result: TransformResults):
77
- assert_equal_len(test_case.results, result.child_results)
76
+ assert_equal_len_with_label(test_case.results, result.child_results, "invalid child count")
78
77
  for index, child_result in enumerate(result.child_results):
79
78
  self.compare_one_transform_result(test_case, child_result, index)
80
79
  expected = test_case.results[index]
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "deltafi"
3
- version = "2.1.0"
3
+ version = "2.2.0"
4
4
  description = "SDK for DeltaFi plugins and actions"
5
5
  authors = ["DeltaFi <deltafi@systolic.com>"]
6
6
  license = "Apache License, Version 2.0"
@@ -36,7 +36,7 @@ optional = true
36
36
  [tool.poetry.group.test.dependencies]
37
37
  pytest = "==8.3.3"
38
38
  pytest-mock = "==3.14.0"
39
- mockito = "==1.5.1"
39
+ mockito = "==1.5.3"
40
40
 
41
41
  [tool.poetry.urls]
42
42
  'Source Code' = "https://gitlab.com/deltafi/deltafi"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes