from CheckLastEnrichment import main, time_check
from CommonServerPython import *
from freezegun import freeze_time
@freeze_time("2024-01-01 14:00:00")
def test_time_check_false():
create_date = str(datetime.now().date())
result = time_check(create_date)
assert result is False
@freeze_time("2024-01-01 14:00:00")
def test_time_check_true():
create_date = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
result = time_check(create_date)
assert result is True
@freeze_time("2024-01-01 14:00:00")
def test_check_last_enrichment(mocker):
enrich_date = (datetime.now() - timedelta(days=2)).strftime("%Y-%m-%d")
mocker.patch.object(demisto, "args", return_value={"last_enrichment": enrich_date})
mocker.patch.object(demisto, "results")
main()
assert demisto.results.call_count == 1
# call_args is tuple (args list, kwargs). we only need the first one
results = demisto.results.call_args[0]
assert len(results) == 1
assert results[0]["Contents"] == "yes"
@freeze_time("2024-01-01 14:00:00")
def test_check_last_enrichment_recent_date(mocker):
last_enrichment = (datetime.now() - timedelta(minutes=10)).strftime("%Y-%m-%d")
mocker.patch.object(demisto, "args", return_value={"last_enrichment": last_enrichment})
mocker.patch.object(demisto, "results")
main()
assert demisto.results.call_count == 1
# call_args is tuple (args list, kwargs). we only need the first one
results = demisto.results.call_args[0]
assert len(results) == 1
assert results[0]["Contents"] == "no"
@freeze_time("2024-01-01 14:00:00")
def test_check_last_enrichment_none(mocker):
mocker.patch.object(demisto, "args", return_value={"last_enrichment": None})
mocker.patch.object(demisto, "results")
main()
assert demisto.results.call_count == 1
# call_args is tuple (args list, kwargs). we only need the first one
results = demisto.results.call_args[0]
assert len(results) == 1
assert results[0]["Contents"] == "yes"
@freeze_time("2024-01-01 14:00:00")
def test_main_exception(mocker):
mocker.patch.object(demisto, "args", return_value={"invalid_key": "invalid_value"})
mocker.patch.object(demisto, "results")
mocker.patch("sys.exit")
main()
results = demisto.results.call_args[0]
assert results[0]["Contents"] == "Failed to execute CheckLastEnrichment. Error: 'last_enrichment'"