示例#1
0
def test_process_info_view(api_base_url):
    uid = "test001:PLC:wcid00d"
    url = "{}/process/info/{}".format(api_base_url, uid)
    response = requests.get(url)
    assert response.status_code == 200
    process_data = response.json()
    keys = [
        u"logfile",
        u"statename",
        u"group",
        u"description",
        u"pid",
        u"stderr_logfile",
        u"stop",
        u"running",
        u"name",
        u"start",
        u"state",
        u"spawnerr",
        u"full_name",
        u"host",
        u"supervisor",
        u"now",
        u"exitstatus",
        u"stdout_logfile",
        u"uid",
    ]

    assert_fields_in_object(keys, process_data)
    assert process_data["uid"] == uid
    assert process_data["supervisor"] == "test001"
    assert process_data["group"] == "PLC"
    assert process_data["name"] == "wcid00d"
示例#2
0
def test_supervisor_info_from_bytes(multivisor_instance):
    supervisor = multivisor_instance.get_supervisor("test001")

    @contextlib.contextmanager
    def patched_getAllProcessInfo(s):
        try:
            getAllProcessInfo = s.server.getAllProcessInfo

            def mockedAllProcessInfo():
                processesInfo = getAllProcessInfo()
                for info in processesInfo:
                    info[b"name"] = info.pop("name").encode("ascii")
                    info[b"description"] = info.pop("description").encode(
                        "ascii")
                return processesInfo

            s.server.getAllProcessInfo = mockedAllProcessInfo
            yield
        finally:
            s.server.getAllProcessInfo = getAllProcessInfo

    # Mock getAllProcessInfo with binary data
    with patched_getAllProcessInfo(supervisor):
        info = supervisor.read_info()
        assert_fields_in_object(
            [
                "running",
                "host",
                "version",
                "identification",
                "name",
                "url",
                "supervisor_version",
                "pid",
                "processes",
                "api_version",
            ],
            info,
        )
        assert info["running"]
        assert info["host"] == "localhost"
        assert len(info["processes"]) == 10
        assert info["name"] == "test001"
        assert info["identification"] == "supervisor"
示例#3
0
def test_supervisor_info_view(api_base_url):
    uid = "test001"
    url = "{}/supervisor/info/{}".format(api_base_url, uid)
    response = requests.get(url)
    assert response.status_code == 200
    supervisor_data = response.json()
    keys = [
        u"processes",
        u"name",
        u"url",
        u"pid",
        u"running",
        u"host",
        u"version",
        u"identification",
        u"supervisor_version",
        u"api_version",
    ]

    assert_fields_in_object(keys, supervisor_data)
    assert supervisor_data["name"] == uid
    assert len(supervisor_data["processes"]) == 10
示例#4
0
def test_processes_attr(multivisor_instance):
    multivisor_instance.refresh()  # processes are empty before calling this
    processes = multivisor_instance.processes
    assert len(processes) == 10
    assert "test001:PLC:wcid00d" in processes
    process = processes["test001:PLC:wcid00d"]
    assert_fields_in_object(
        [
            "logfile",
            "supervisor",
            "description",
            "state",
            "pid",
            "stderr_logfile",
            "stop",
            "host",
            "statename",
            "name",
            "start",
            "running",
            "stdout_logfile",
            "full_name",
            "group",
            "now",
            "exitstatus",
            "spawnerr",
            "uid",
        ],
        process,
    )
    assert process["supervisor"] == "test001"
    assert process["full_name"] == "PLC:wcid00d"
    assert process["name"] == "wcid00d"
    assert process["uid"] == "test001:PLC:wcid00d"
    assert process["group"] == "PLC"
    assert "tests/log/wcid00d.log" in process["logfile"]
    assert "tests/log/wcid00d.log" in process["stdout_logfile"]
    assert process["stderr_logfile"] == ""
示例#5
0
def test_supervisor_info(multivisor_instance):
    supervisor = multivisor_instance.get_supervisor("test001")
    info = supervisor.read_info()
    assert_fields_in_object(
        [
            "running",
            "host",
            "version",
            "identification",
            "name",
            "url",
            "supervisor_version",
            "pid",
            "processes",
            "api_version",
        ],
        info,
    )
    assert info["running"]
    assert info["host"] == "localhost"
    assert len(info["processes"]) == 10
    assert info["name"] == "test001"
    assert info["identification"] == "supervisor"
示例#6
0
def test_data_view(api_base_url):
    url = "{}/data".format(api_base_url)
    response = requests.get(url)
    assert response.status_code == 200
    data = response.json()
    assert_fields_in_object(["name", "supervisors"], data)
    assert "test001" in data["supervisors"]
    supervisor = data["supervisors"]["test001"]
    assert_fields_in_object(
        [
            "processes",
            "name",
            "url",
            "pid",
            "running",
            "host",
            "version",
            "identification",
            "supervisor_version",
            "api_version",
        ],
        supervisor,
    )

    assert supervisor["running"]
    processes = supervisor["processes"]
    for name, process in processes.items():
        assert_fields_in_object(
            [
                "stderr_logfile",
                "description",
                "statename",
                "pid",
                "stdout_logfile",
                "full_name",
                "supervisor",
                "logfile",
                "exitstatus",
            ],
            process,
        )