Example #1
0
    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...',
        ])
Example #2
0
    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...',
        ])