test_processing.py 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import os
  2. from synergine2.processing import ProcessManager
  3. from synergine2.utils import ChunkManager
  4. from tests import BaseTest
  5. class TestProcessing(BaseTest):
  6. @staticmethod
  7. def _make_job(data_chunk: list) -> tuple:
  8. current_pid = os.getpid()
  9. result = sum(data_chunk)
  10. return current_pid, result
  11. def test_parallel_jobs(self):
  12. chunk_manager = ChunkManager(4)
  13. process_manager = ProcessManager(
  14. process_count=4,
  15. chunk_manager=chunk_manager,
  16. job_maker=self._make_job,
  17. )
  18. data = list(range(100))
  19. process_id_list = []
  20. final_result = 0
  21. results = process_manager.execute_jobs(data)
  22. for process_id, result in results:
  23. final_result += result
  24. process_id_list.append(process_id)
  25. # Test each process ids are differents
  26. assert sorted(process_id_list) == \
  27. sorted(list(set(process_id_list)))
  28. # Goal is 4950
  29. assert final_result == 4950