Skip to content

Commit a8412bf

Browse files
added new test cases
1 parent 1ea95f8 commit a8412bf

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

spidermon/contrib/scrapy/monitors/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
SPIDERMON_JOBS_COMPARISON_THRESHOLD,
2929
SPIDERMON_ITEM_COUNT_INCREASE,
3030
SPIDERMON_JOBS_COMPARISON_CLOSE_REASONS,
31+
SPIDERMON_JOBS_COMPARISON_ARGUMENTS,
3132
)
3233
from .suites import (
3334
SpiderCloseMonitorSuite,

tests/contrib/scrapy/monitors/test_jobs_comparison_monitor.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
SPIDERMON_JOBS_COMPARISON_STATES,
99
SPIDERMON_JOBS_COMPARISON_TAGS,
1010
SPIDERMON_JOBS_COMPARISON_THRESHOLD,
11+
SPIDERMON_JOBS_COMPARISON_ARGUMENTS,
1112
SPIDERMON_JOBS_COMPARISON_CLOSE_REASONS,
1213
ZyteJobsComparisonMonitor,
1314
monitors,
@@ -45,6 +46,15 @@ def get_paginated_jobs(**kwargs):
4546
return mocked_job_meta
4647

4748

49+
def get_paginated_jobs_with_one_args(**kwargs):
50+
mocked_job_meta = []
51+
for _ in range(kwargs["count"]):
52+
mocked_job_meta.append(
53+
{"spider_args": {"args1": True}, "close_reason": "finished"}
54+
)
55+
return mocked_job_meta
56+
57+
4858
def get_paginated_jobs_arg_finished(**kwargs):
4959
mocked_job_meta = []
5060
for _ in range(kwargs["count"]):
@@ -286,6 +296,32 @@ def test_jobs_comparison_monitor_get_jobs():
286296
assert len(jobs) == 50
287297
mock_client.spider.jobs.list.assert_called_once()
288298

299+
mock_client = Mock()
300+
with patch(
301+
"spidermon.contrib.scrapy.monitors.monitors.Client"
302+
) as mock_client_class:
303+
mock_client_class.return_value = mock_client
304+
monitor = TestZyteJobsComparisonMonitor()
305+
monitor._get_tags_to_filter = Mock(side_effect=lambda: None)
306+
monitor.data = Mock()
307+
308+
def mock_getlist(key, default=None):
309+
data = {
310+
SPIDERMON_JOBS_COMPARISON_CLOSE_REASONS: ["finished"],
311+
SPIDERMON_JOBS_COMPARISON_ARGUMENTS: [],
312+
}
313+
return data.get(key, default)
314+
315+
monitor.crawler.settings = Mock()
316+
monitor.crawler.settings.getlist.side_effect = mock_getlist
317+
monitor.crawler.settings.getbool.return_value = True
318+
mock_client.spider.jobs.list = Mock(side_effect=get_paginated_jobs_arg_finished)
319+
320+
# Return 0 number of jobs
321+
jobs = monitor._get_jobs(states=None, number_of_jobs=5)
322+
assert len(jobs) == 0
323+
mock_client.spider.jobs.list.assert_called_once()
324+
289325

290326
@pytest.mark.parametrize(
291327
["item_count", "previous_counts", "threshold", "should_raise"],

0 commit comments

Comments
 (0)