SumList

Sums a List e.g. ["25", "10", "25"] => "60" This is an example for number transformer.

python · Filters And Transformers

Details

IDSumList
Languagepython
From Version5.0.0
Docker Imagedemisto/python3:3.12.13.10404775
Tagstransformer number entirelist

README

Sums a List
e.g. [“25”, “10”, “25”] => “60”

This is an example for number transformer.

Script Data


Name Description
Script Type python3
Tags transformer, number, entirelist
Cortex XSOAR Version 5.0.0

Inputs


Argument Name Description
value A list for which to sum the list values.

Outputs


There are no outputs for this script.

import pytest
from SumList import sum_value

"""Arguments as lists"""

only_numbers = [1, 2, 3, 4]
numbers_as_string = ["1", "2", "3", "4"]
combined_string_numbers = ["1", 2, 3, "4"]
fail_not_number = ["d", "1", 3]
empty_list = []
with_floats_to_int = ["1.0", "2.0", 3, "4"]
with_floats_to_float = ["1.1", "2.0", 3, "4"]

"""Arguments as strings"""

only_numbers_as_string = "1,2 ,3 ,4"
fail_not_number_as_string = "d,1,3"
empty_string = ""
with_floats_to_int_string = "1.05, 2.95, 3, 3.0"
with_floats_to_float_string = "1.1,2.0,3,4"

"""Expected results"""

good_result = (10, "ok")
good_result_floats = (10.1, "ok")
bad_result = ("error", "error")
empty_list_result = (0, "ok")


@pytest.mark.parametrize(
    "list_value, expected_result",
    [
        (only_numbers, good_result),
        (numbers_as_string, good_result),
        (combined_string_numbers, good_result),
        (fail_not_number, bad_result),
        (empty_list, empty_list_result),
    ],
)
def test_lists(list_value, expected_result):
    value, return_type = sum_value(list_value)
    assert (value, return_type) == expected_result


@pytest.mark.parametrize(
    "string_value, expected_result",
    [
        (only_numbers_as_string, good_result),
        (fail_not_number_as_string, bad_result),
        (empty_string, bad_result),
    ],
)
def test_strings(string_value, expected_result):
    value, return_type = sum_value(string_value)
    assert (value, return_type) == expected_result


@pytest.mark.parametrize(
    "string_value, expected_result",
    [
        (with_floats_to_int, good_result),
        (with_floats_to_int_string, good_result),
    ],
)
def test_floats_that_will_be_ints(string_value, expected_result):
    value, return_type = sum_value(string_value)
    assert (value, return_type) == expected_result


@pytest.mark.parametrize(
    "string_value, expected_result",
    [
        (with_floats_to_float, good_result_floats),
        (with_floats_to_float_string, good_result_floats),
    ],
)
def test_floats_that_will_be_floats(string_value, expected_result):
    value, return_type = sum_value(string_value)
    assert (value, return_type) == expected_result