GetOnCallHoursPerUser

Retrieves the number of on call hours per user.

python · Shift Management

Details

IDGetOnCallHoursPerUser
Languagepython
From Version5.5.0
Docker Imagedemisto/python3:3.12.13.10116658
TagsShift Management widget

README

Retrieves the number of on-call hours per user.

Script Data


Name Description
Script Type python3
Tags Shift Management, widget
Cortex XSOAR Version 5.5.0

Inputs


There are no inputs for this script.

Outputs


There are no outputs for this script.

import json

import demistomock as demisto
from GetOnCallHoursPerUser import main

ROLES = [
    {
        "name": "Shift1",
        "shifts": [
            {"fromDay": 0, "fromHour": 8, "fromMinute": 0, "toDay": 3, "toHour": 12, "toMinute": 0},
            {"fromDay": 4, "fromHour": 16, "fromMinute": 0, "toDay": 6, "toHour": 20, "toMinute": 0},
        ],
    },
    {"name": "Administrator", "shifts": None},
    {
        "name": "Shift2",
        "shifts": [
            {"fromDay": 0, "fromHour": 8, "fromMinute": 0, "toDay": 3, "toHour": 12, "toMinute": 0},
            {"fromDay": 4, "fromHour": 16, "fromMinute": 0, "toDay": 6, "toHour": 20, "toMinute": 0},
            {"fromDay": 1, "fromHour": 3, "fromMinute": 0, "toDay": 4, "toHour": 6, "toMinute": 0},
        ],
    },
]

GET_ROLES_RESPONSE = [{"Type": 1, "Contents": ROLES}]

USERS = [
    {
        "Type": 1,
        "Contents": [
            {"id": "user1", "name": "User1", "roles": {"demisto": ["Shift1"]}},
            {"id": "user2", "name": "User2", "roles": {"demisto": ["Shift1"]}},
            {"id": "user3", "name": "User3", "roles": {"demisto": ["Shift2"]}},
            {"id": "admin", "name": "Admin", "roles": {"demisto": ["Administrator"]}},
        ],
    }
]


def execute_command(name, args=None):
    if name == "getRoles":
        return GET_ROLES_RESPONSE
    elif name == "getUsers":
        return USERS
    else:
        return None


def test_get_oncall_hours_per_user(mocker):
    mocker.patch.object(demisto, "executeCommand", side_effect=execute_command)
    mocker.patch.object(demisto, "results")
    main()
    results = demisto.results.call_args[0]
    assert len(results) == 1
    assert json.loads(results[0]) == [
        {"data": [128], "name": "User1"},
        {"data": [128], "name": "User2"},
        {"data": [0], "name": "Admin"},
        {"data": [203], "name": "User3"},
    ]