Пример #1
0
def test_process_status_once():
    status_queue = Queue()
    under_test = InThreadStatusTracker(status_queue)
    status_update = StatusMessage(
        "name",
        "version",
        "service_id",
        "host_name",
        "process_id",
        update_interval=5,
        status_json=
        '{"state":"writing","job_id":"some_job_id","file_being_written":"some_file_name.nxs"}',
    )
    assert status_queue.empty()
    now = datetime.now()
    under_test.process_status(status_update)
    under_test.send_status_if_updated(now)
    assert not status_queue.empty()
    assert type(status_queue.get()) is WorkerStatus
    assert len(under_test.known_jobs) == 1
    keys = under_test.known_jobs.keys()
    print(list(keys)[0])
    assert under_test.known_jobs[list(keys)
                                 [0]].file_name == "some_file_name.nxs"
    assert under_test.known_jobs[list(keys)[0]].state == JobState.WRITING
    assert under_test.known_jobs[list(keys)[0]].metadata == {
        "state": "writing",
        "job_id": "some_job_id",
        "file_being_written": "some_file_name.nxs",
    }
Пример #2
0
def test_process_status_twice_two_updates_2():
    status_queue = Queue()
    under_test = InThreadStatusTracker(status_queue)
    status_update = StatusMessage(
        "name",
        "version",
        "service_id",
        "host_name",
        "process_id",
        update_interval=5,
        status_json=
        '{"state":"writing","job_id":"some_job_id","file_being_written":"some_file_name.nxs"}',
    )
    assert status_queue.empty()
    now = datetime.now()
    under_test.process_status(status_update)
    under_test.send_status_if_updated(now)
    assert not status_queue.empty()
    assert type(status_queue.get()) is WorkerStatus
    status_update = StatusMessage(
        "name",
        "version",
        "service_id",
        "host_name",
        "process_id",
        update_interval=5,
        status_json='{"state":"idle"}',
    )
    now = datetime.now()
    under_test.process_status(status_update)
    under_test.send_status_if_updated(now)
    assert not status_queue.empty()
Пример #3
0
def test_process_msg_status():
    status_msg = serialise_status("sw",
                                  "v1",
                                  "service_id",
                                  "host",
                                  12,
                                  142,
                                  status_json="{}")
    status_queue = Queue()
    under_test = InThreadStatusTracker(status_queue)
    under_test.process_status = Mock()
    under_test.process_message(status_msg)
    under_test.process_status.assert_called_once_with(
        deserialise_status(status_msg))