You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/tests/engines/test_multithreading.rs

62 lines
2.0 KiB

#[cfg(test)]
mod tests {
use super::*;
use pyo3::types::IntoPyDict;
#[test]
fn test_process_python_modules() {
let gil = Python::acquire_gil();
let py = gil.python();
// Define a Python module for testing
let code = r#"
def test_function():
return "Hello, World!"
"#;
let test_module = PyModule::new(py, "test_module").unwrap();
test_module.add_function(wrap_pyfunction!(test_function, test_module).unwrap()).unwrap();
test_module.add(py, "test_function", code).unwrap();
// Define a PythonModule struct for testing
let test_python_module = PythonModule {
name: "test_module",
function: "test_function",
};
// Test the process_python_modules function
let result = process_python_modules(vec![test_python_module], 1);
assert!(result.is_ok());
}
#[test]
fn test_process_python_modules_import_error() {
// Define a PythonModule struct with a non-existent module
let test_python_module = PythonModule {
name: "non_existent_module",
function: "test_function",
};
// Test the process_python_modules function
let result = process_python_modules(vec![test_python_module], 1);
assert!(matches!(result, Err(PythonError::ImportError(_))));
}
#[test]
fn test_process_python_modules_function_error() {
let gil = Python::acquire_gil();
let py = gil.python();
// Define a Python module for testing
let test_module = PyModule::new(py, "test_module").unwrap();
// Define a PythonModule struct with a non-existent function
let test_python_module = PythonModule {
name: "test_module",
function: "non_existent_function",
};
// Test the process_python_modules function
let result = process_python_modules(vec![test_python_module], 1);
assert!(matches!(result, Err(PythonError::FunctionError(_))));
}
}