File: test_status.py

package info (click to toggle)
fdb 5.20.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 89,268 kB
  • sloc: cpp: 40,830; python: 5,079; sh: 4,996; makefile: 32; ansic: 8
file content (52 lines) | stat: -rw-r--r-- 1,378 bytes parent folder | download | duplicates (2)
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
41
42
43
44
45
46
47
48
49
50
51
52
from pyfdb.pyfdb import FDB
from pyfdb.pyfdb_iterator import StatusElement


def test_status(read_only_fdb_setup):
    fdb = FDB(read_only_fdb_setup)

    selection = {
        "type": "an",
        "class": "ea",
        "domain": "g",
    }

    status_iterator = fdb.status(selection)

    elements = []

    for el in status_iterator:
        print(el)
        elements.append(el)

    assert len(elements) == 32

    expected_key = {
        "class": ["ea"],
        "date": ["20200104"],
        "domain": ["g"],
        "expver": ["0001"],
        "stream": ["oper"],
    }
    expected_control_identifiers: list[StatusElement] = []

    for element in elements:
        assert all(
            el in element.key() for el in expected_key
        )  # Check whether the expected key is part of the elements

        assert element.controlIdentifiers() == expected_control_identifiers

        date = element.key()["date"]
        assert date and len(date) == 1
        time = element.key()["time"]
        assert time and len(time) == 1

        assert "ea:0001:oper:" in str(element.location())
        assert f":{date[0]}:" in str(element.location())
        assert f":{time[0]}:" in str(element.location())
        assert ":g" in str(element.location())

    # Test compare of status elements
    assert elements[0] == elements[0]
    assert elements[1] != elements[0]