Skip to content
Snippets Groups Projects
itemtable_tests.py 1.66 KiB
import mock


from hid.tables import ItemTable


def test_get_selected_returns_empty_list_on_empty_selection():
    params = mock.MagicMock()
    params.getlist.return_value = []

    assert ItemTable.get_selected(params) == []


def test_get_selected_returns_submitted_values_as_ints():
    params = mock.MagicMock()
    params.getlist.return_value = ["201", "199", "3"]

    assert ItemTable.get_selected(params) == [201, 199, 3]


def test_get_row_select_values_returns_id_value_pairs():
    post_params = {
        'category-123': "second",
        'category-99': "third",
        'category-56': "first",
        'category-1': "second",
    }
    expected = [
        (123, "second"),
        (99, "third"),
        (56, "first"),
        (1, "second")
    ]
    actual = ItemTable.get_row_select_values(post_params, 'category')
    assert sorted(expected) == sorted(actual)  # Order is not important


def test_get_row_select_values_reads_params_from_prefix():
    post_params = {
        'prefix-123': "second",
        'prefix-99': "third",
        'other-1': "second",
    }
    expected = [
        (123, "second"),
        (99, "third"),
    ]
    actual = ItemTable.get_row_select_values(post_params, 'prefix')
    assert sorted(expected) == sorted(actual)  # Order is not important


def test_get_row_select_values_does_not_remove_empty():
    post_params = {
        'category-123': "second",
        'category-99': "third",
        'category-56': "",
    }
    expected = [
        (123, "second"),
        (99, "third"),
        (56, ""),
    ]
    actual = ItemTable.get_row_select_values(post_params, 'category')
    assert sorted(expected) == sorted(actual)  # Order is not important