File size: 1,101 Bytes
06c11b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from __future__ import annotations


def test_sanitize_options_removes_solve_and_boolifies_available(reload_module):
    process_session = reload_module("process_session")

    raw = [
        {
            "label": "a",
            "action": "pick",
            "available": ["obj1"],
            "solve": lambda: None,
            "extra": 123,
        },
        {
            "label": "b",
            "action": "place",
            "available": [],
            "solve": lambda: None,
        },
    ]

    cleaned = process_session._sanitize_options(raw)

    assert len(cleaned) == 2
    assert "solve" not in cleaned[0]
    assert "solve" not in cleaned[1]
    assert cleaned[0]["available"] is True
    assert cleaned[1]["available"] is False
    assert cleaned[0]["label"] == "a"
    assert cleaned[0]["action"] == "pick"
    assert cleaned[0]["extra"] == 123


def test_sanitize_options_handles_empty_input(reload_module):
    process_session = reload_module("process_session")

    assert process_session._sanitize_options(None) == []
    assert process_session._sanitize_options([]) == []