Ejemplo n.º 1
0
def test_core_servicer_start_session(thread_mock, logger_mock):
    session_id = 'test-id'
    session_type = 'test-type'
    method = MagicMock()

    # debug mode
    instance = CoreServicer('/input', '/output', '/static', 0.5, debug=True)
    instance._start_session(session_id,
                            session_type,
                            method,
                            'first-argument',
                            second='argument')

    args, kwargs = method.call_args

    assert len(instance.DB) == 1
    assert len(instance.DB[session_type + '_sessions']) == 1

    session = instance.DB[session_type + '_sessions'][session_id]

    assert method.call_count == 1
    assert logger_mock.call_count == 2
    assert args == ('first-argument', )
    assert kwargs == {}  # TODO: should kwargs be used?
    assert 'id' in session
    assert 'type' in session
    assert 'start' in session
    assert 'end' in session
    assert 'done' in session
    assert 'error' not in session

    # without debugging
    logger_mock.reset_mock()

    instance = CoreServicer('/input', '/output', '/static', 0.5)
    instance._start_session(session_id,
                            session_type,
                            method,
                            'first-argument',
                            second='argument')

    assert len(instance.DB) == 1
    assert len(instance.DB[session_type + '_sessions']) == 1

    session = instance.DB[session_type + '_sessions'][session_id]
    expected_args = [session, method] + list(args)

    thread_mock.assert_called_once_with(target=instance._run_session,
                                        args=expected_args)
    assert logger_mock.call_count == 1
    assert 'id' in session
    assert 'type' in session
    assert 'start' in session
Ejemplo n.º 2
0
def test_core_servicer_searchsolutions(searcher_mock, pipeline_searcher_mock, decode_mock):
    instance = CoreServicer('/input-dir', '/output-dir', 0.5)
    instance._start_session = MagicMock()
    expected_result = 'result'
    searcher_mock.return_value = expected_result

    # wrong version
    request = MagicMock(version='fake-version')

    with pytest.raises(AssertionError):
        instance.SearchSolutions(request, None)  # context (None) is not used

    # wrong problem inputs
    request = MagicMock(version='2019.6.11')

    with pytest.raises(AssertionError):
        instance.SearchSolutions(request, None)  # context (None) is not used

    # correct parameters
    inputs = [1]
    problem = MagicMock(inputs=inputs)
    request = MagicMock(version='2019.6.11', inputs=inputs, problem=problem)

    result = instance.SearchSolutions(request, None)  # context (None) is not used

    decode_mock.assert_called_once_with(problem)
    pipeline_searcher_mock.assert_called_once_with(instance.input_dir, instance.output_dir)

    assert instance._start_session.call_count == 1
    assert result == expected_result