OutOfOfficeListCleanup
Removes any users from the out-of-office list whose 'off until day' is in the past.
python · Shift Management
Details
| ID | OutOfOfficeListCleanup |
|---|---|
| Language | python |
| From Version | 5.5.0 |
| Docker Image | demisto/python3:3.12.13.10116658 |
| Tags | ooo Shift Management |
README
Removes any users from the out-of-office list whose ‘off until day’ is in the past.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | ooo, Shift Management |
| Cortex XSOAR Version | 5.5.0 |
Inputs
| Argument Name | Description |
|---|---|
| listname | The name of the out-of-office list. Default is “OOO List”. |
Outputs
There are no outputs for this script.
import datetime import json import demistomock as demisto from OutOfOfficeListCleanup import main def execute_command(name, args=None): if name == "getList": get_list_response = [{"user": "admin", "offuntil": "2020-04-20", "addedby": "admin"}] return [{"Contents": json.dumps(get_list_response)}] else: return None def execute_command_with_ooo_user(name, args=None): if name == "getList": tommorow = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y-%m-%d") get_list_response = [{"user": "admin", "offuntil": tommorow, "addedby": "admin"}] return [{"Contents": json.dumps(get_list_response)}] else: return None def test_out_of_office_list_cleanup_list_changed(mocker): """ Given: - List of OOO(out of office) users with one user that should be removed. When: - running OutOfOfficeListCleanup script. Then: - Check if the list is now empty. """ mocker.patch.object(demisto, "args", return_value={"listname": "OOO List"}) mocker.patch.object(demisto, "executeCommand", side_effect=execute_command) mocker.patch.object(demisto, "results") main() results = demisto.results.call_args[0][0] assert demisto.executeCommand.call_args[0][1]["listData"] == "[]" assert results == "The following Users were removed from the Out of Office List OOO List:\nadmin" def test_out_of_office_list_cleanup_list_not_changed(mocker): """ Given: - List of OOO(out of office) users with one user that should be in vacation until tomorrow. When: - running OutOfOfficeListCleanup script. Then: - Check if the list stays the same. """ mocker.patch.object(demisto, "args", return_value={"listname": "OOO List"}) mocker.patch.object(demisto, "executeCommand", side_effect=execute_command_with_ooo_user) mocker.patch.object(demisto, "results") main() results = demisto.results.call_args[0][0] assert results == "No users removed from the list OOO List" def execute_command_empty_list(name, args=None): if name == "getList": return [{"Contents": "null"}] return None def test_out_of_office_list_cleanup_list_create_empty_new_list(mocker): """ Given: - A non-existing list of OOO(out of office) users. When: - running OutOfOfficeListCleanup script. Then: - Check if the list stays empty. """ mocker.patch.object(demisto, "args", return_value={"listname": "OOO List"}) mocker.patch.object(demisto, "executeCommand", side_effect=execute_command_empty_list) mocker.patch.object(demisto, "results") main() results = demisto.results.call_args[0][0] assert results == "No users removed from the list OOO List"