Skip to content

Commit f496498

Browse files
authored
[EventHubs] add contains to DictMixin (Azure#19886)
1 parent a65e853 commit f496498

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

sdk/eventhub/azure-eventhub/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Release History
22

3+
## 5.6.1 (2021-07-07)
4+
5+
### Fixed
6+
7+
- Fixed a bug for checking that `azure.eventhub.amqp.AmqpMessageHeader` and `azure.eventhub.amqp.AmqpMessageProperties` contain specific properties using the `in` keyword.
8+
39
## 5.6.0 (2021-07-07)
410

511
### Features Added

sdk/eventhub/azure-eventhub/azure/eventhub/_mixin.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ def __ne__(self, other):
4141
"""Compare objects by comparing all attributes."""
4242
return not self.__eq__(other)
4343

44+
def __contains__(self, key):
45+
# type: (Any) -> bool
46+
return key in self.__dict__
47+
4448
def __str__(self):
4549
# type: () -> str
4650
return str({k: v for k, v in self.__dict__.items() if not k.startswith("_")})
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# coding=utf-8
2+
# ------------------------------------
3+
# Copyright (c) Microsoft Corporation.
4+
# Licensed under the MIT License.
5+
# ------------------------------------
6+
7+
import pytest
8+
from azure.eventhub._mixin import DictMixin
9+
10+
class TestDictMixin:
11+
12+
def test_contains_haskey(self):
13+
model = DictMixin()
14+
key = "testkey"
15+
value = "testval"
16+
model.__setitem__(key, value)
17+
#assert model.__contains__(key)
18+
assert key in model
19+
assert model.has_key(key)
20+
21+
def test_getitem_get(self):
22+
model = DictMixin()
23+
key = "testkey"
24+
value = "testval"
25+
model.__setitem__(key, value)
26+
assert model.__getitem__(key) == "testval"
27+
assert model.get(key) == "testval"
28+
29+
def test_repr_str(self):
30+
model = DictMixin()
31+
key = "testkey"
32+
value = "testval"
33+
model.__setitem__(key, value)
34+
assert model.__repr__() == "{'testkey': 'testval'}"
35+
36+
def test_len_delitem(self):
37+
model = DictMixin()
38+
key = "testkey"
39+
value = "testval"
40+
model.__setitem__(key, value)
41+
assert model.__len__() == 1
42+
model.__delitem__(key)
43+
assert model[key] is None
44+
45+
def test_eq_ne(self):
46+
model = DictMixin()
47+
model2 = DictMixin()
48+
key = "testkey"
49+
value = "testval"
50+
value2 = "testval2"
51+
model.__setitem__(key, value)
52+
model2.__setitem__(key, value2)
53+
assert model.__ne__(model2) is True
54+
55+
def test_update(self):
56+
model = DictMixin()
57+
key = "testkey"
58+
value = "testval"
59+
updatedval = "updatedval"
60+
model.__setitem__(key, value)
61+
updated = {key: updatedval}
62+
model.update(updated)
63+
assert model[key] == updatedval
64+
65+
def test_values_items(self):
66+
model = DictMixin()
67+
key = "testkey"
68+
value = "testval"
69+
key2 = "testkey2"
70+
value2 = "testval2"
71+
model.__setitem__(key, value)
72+
model.__setitem__(key2, value2)
73+
vals = model.values()
74+
for item in model.items():
75+
assert item[1] in vals

0 commit comments

Comments
 (0)