Skip to content

Commit c1e8530

Browse files
authored
Add more unit tests for empty include lists in Discovery (#18556)
* add unit test for empty exclude * replace call count with mock_calls
1 parent 3e47cb8 commit c1e8530

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

datadog_checks_base/tests/base/utils/discovery/test_discovery.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,21 @@ def test_include_empty():
1313
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
1414
d = Discovery(mock_get_items)
1515
assert list(d.get_items()) == []
16-
assert mock_get_items.call_count == 1
16+
assert mock_get_items.mock_calls == [mock.call()]
17+
18+
19+
def test_include_empty_exclude_non_empty():
20+
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
21+
d = Discovery(mock_get_items, exclude=['b.*'])
22+
assert list(d.get_items()) == []
23+
assert mock_get_items.mock_calls == [mock.call()]
24+
25+
26+
def test_include_empty_limit():
27+
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
28+
d = Discovery(mock_get_items, limit=1)
29+
assert list(d.get_items()) == []
30+
assert mock_get_items.mock_calls == [mock.call()]
1731

1832

1933
@pytest.mark.parametrize(
@@ -33,21 +47,21 @@ def test_include_not_empty(pattern):
3347
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
3448
d = Discovery(mock_get_items, include={pattern: None})
3549
assert list(d.get_items()) == [(pattern, 'a', 'a', None)]
36-
assert mock_get_items.call_count == 1
50+
assert mock_get_items.mock_calls == [mock.call()]
3751

3852

3953
def test_include_processed_in_order():
4054
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
4155
d = Discovery(mock_get_items, include={'c.*': {'value': 5}, 'a.*': {'value': 10}})
4256
assert list(d.get_items()) == [('c.*', 'c', 'c', {'value': 5}), ('a.*', 'a', 'a', {'value': 10})]
43-
assert mock_get_items.call_count == 1
57+
assert mock_get_items.mock_calls == [mock.call()]
4458

4559

4660
def test_exclude_and_include_intersection_is_empty():
4761
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
4862
d = Discovery(mock_get_items, include={'a.*': None}, exclude=['b.*'])
4963
assert list(d.get_items()) == [('a.*', 'a', 'a', None)]
50-
assert mock_get_items.call_count == 1
64+
assert mock_get_items.mock_calls == [mock.call()]
5165

5266

5367
def test_exclude_is_subset_of_include():
@@ -61,21 +75,21 @@ def test_exclude_is_subset_of_include():
6175
('.*', 'f', 'f', None),
6276
('.*', 'g', 'g', None),
6377
]
64-
assert mock_get_items.call_count == 1
78+
assert mock_get_items.mock_calls == [mock.call()]
6579

6680

6781
def test_exclude_is_equals_to_include():
6882
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
6983
d = Discovery(limit=10, include={'b.*': None}, exclude=['b.*'], interval=0, get_items_func=mock_get_items)
7084
assert list(d.get_items()) == []
71-
assert mock_get_items.call_count == 1
85+
assert mock_get_items.mock_calls == [mock.call()]
7286

7387

7488
def test_limit_zero():
7589
mock_get_items = mock.Mock(return_value=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
7690
d = Discovery(mock_get_items, limit=0, include={'.*': None})
7791
assert list(d.get_items()) == []
78-
assert mock_get_items.call_count == 1
92+
assert mock_get_items.mock_calls == [mock.call()]
7993

8094

8195
def test_limit_none():
@@ -90,7 +104,7 @@ def test_limit_none():
90104
('.*', 'f', 'f', None),
91105
('.*', 'g', 'g', None),
92106
]
93-
assert mock_get_items.call_count == 1
107+
assert mock_get_items.mock_calls == [mock.call()]
94108

95109

96110
def test_limit_greater_than_zero():
@@ -103,7 +117,7 @@ def test_limit_greater_than_zero():
103117
('.*', 'd', 'd', {'value': 5}),
104118
('.*', 'e', 'e', {'value': 5}),
105119
]
106-
assert mock_get_items.call_count == 1
120+
assert mock_get_items.mock_calls == [mock.call()]
107121

108122

109123
def test_limit_greater_than_items_len():
@@ -118,7 +132,7 @@ def test_limit_greater_than_items_len():
118132
('.*', 'f', 'f', None),
119133
('.*', 'g', 'g', None),
120134
]
121-
assert mock_get_items.call_count == 1
135+
assert mock_get_items.mock_calls == [mock.call()]
122136

123137

124138
def test_interval_none_two_calls_to_get_items_func():
@@ -131,7 +145,7 @@ def test_interval_none_two_calls_to_get_items_func():
131145
('.*', 'c', 'c', None),
132146
('.*', 'd', 'd', None),
133147
]
134-
assert mock_get_items.call_count == 2
148+
assert mock_get_items.mock_calls == [mock.call(), mock.call()]
135149

136150

137151
def test_interval_zero_two_calls_to_get_items_func():
@@ -144,7 +158,7 @@ def test_interval_zero_two_calls_to_get_items_func():
144158
('.*', 'c', 'c', None),
145159
('.*', 'd', 'd', None),
146160
]
147-
assert mock_get_items.call_count == 2
161+
assert mock_get_items.mock_calls == [mock.call(), mock.call()]
148162

149163

150164
def test_interval_not_exceeded():
@@ -153,7 +167,7 @@ def test_interval_not_exceeded():
153167
d = Discovery(mock_get_items, include={'.*': None}, interval=60)
154168
assert list(d.get_items()) == [('.*', 'a', 'a', None), ('.*', 'b', 'b', None)]
155169
assert list(d.get_items()) == [('.*', 'a', 'a', None), ('.*', 'b', 'b', None)]
156-
assert mock_get_items.call_count == 1
170+
assert mock_get_items.mock_calls == [mock.call()]
157171

158172

159173
def test_interval_exceeded():
@@ -167,11 +181,11 @@ def test_interval_exceeded():
167181
('.*', 'c', 'c', None),
168182
('.*', 'd', 'd', None),
169183
]
170-
assert mock_get_items.call_count == 2
184+
assert mock_get_items.mock_calls == [mock.call(), mock.call()]
171185

172186

173187
def test_key_in_items():
174188
mock_get_items = mock.Mock(return_value=[{'key': 'a', 'value': 75}, {'key': 'b', 'value': 89}])
175189
d = Discovery(mock_get_items, include={'a.*': {'filter': 'xxxx'}}, key=lambda item: item['key'])
176190
assert list(d.get_items()) == [('a.*', 'a', {'key': 'a', 'value': 75}, {'filter': 'xxxx'})]
177-
assert mock_get_items.call_count == 1
191+
assert mock_get_items.mock_calls == [mock.call()]

0 commit comments

Comments
 (0)