def test_1_cpu(self, mock_Pool, mock_convert_frame, mock_get_sorted_filenames): mock_get_sorted_filenames.return_value = ['0001.jpg', '0002.jpg'] options = { 'cpu_pool_size': 1, 'stdout': io.StringIO(), 'output_dirnames': { 'jpg': 'foo/jpg', }, } _convert_frames(**options) self.assertEqual(mock_get_sorted_filenames.call_count, 1) self.assertEqual(mock_convert_frame.call_count, 2) self.assertEqual(mock_Pool.call_count, 0) output = options['stdout'].getvalue() self.assertEqual(output[-1], '\n') output = output[:-1].split(u'\u001b[2K\u001b[1000D') self.assertEqual(output, [ 'Processed 0/2 frames...', 'Processed 1/2 frames...', 'Processed 2/2 frames...', ])
def test_2_cpus(self, mock_Pool, mock_convert_frame, mock_get_sorted_filenames): mock_get_sorted_filenames.return_value = ['0001.jpg', '0002.jpg'] mock_pool = MagicMock() mock_pool.__enter__.return_value = mock_pool def mock_result(f, args, kwargs): m = Mock() m.get.return_value = f(*args, **kwargs) return m mock_pool.apply_async = mock_result mock_Pool.return_value = mock_pool options = { 'cpu_pool_size': 2, 'stdout': io.StringIO(), 'output_dirnames': { 'jpg': 'foo/jpg', }, } _convert_frames(**options) self.assertEqual(mock_get_sorted_filenames.call_count, 1) self.assertEqual(mock_convert_frame.call_count, 2) self.assertEqual(mock_Pool.call_count, 1) output = options['stdout'].getvalue() self.assertEqual(output[-1], '\n') output = output[:-1].split(u'\u001b[2K\u001b[1000D') self.assertEqual(output, [ 'Processed 0/2 frames...', 'Processed 1/2 frames...', 'Processed 2/2 frames...', ])