def test_can_get_threadpool_instance(self):
        instance = ThreadPool.instance(0)
        expect(instance.pool).to_be_null()

        instance = ThreadPool.instance(10)
        expect(instance).not_to_be_null()

        instance2 = ThreadPool.instance(10)
        expect(instance2).to_equal(instance)

        instance3 = ThreadPool.instance(11)
        expect(instance3).not_to_equal(instance)
Exemple #2
0
    def test_can_get_threadpool_instance(self):
        instance = ThreadPool.instance(0)
        expect(instance.pool).to_be_null()

        instance = ThreadPool.instance(10)
        expect(instance).not_to_be_null()

        instance2 = ThreadPool.instance(10)
        expect(instance2).to_equal(instance)

        instance3 = ThreadPool.instance(11)
        expect(instance3).not_to_equal(instance)
    def test_queueing_task_when_no_pool_runs_sync(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()

        def add():
            return 10

        def handle_operation(result):
            self.handled = True
            expect(result.result()).to_equal(10)

        instance.queue(add, handle_operation)
        expect(self.handled).to_be_true()
    def test_can_run_task_in_foreground(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()

        def add():
            return 10

        def handle_operation(result):
            self.handled = True
            expect(result.result()).to_equal(10)

        instance._execute_in_foreground(add, handle_operation)
        expect(self.handled).to_be_true()
Exemple #5
0
    def test_queueing_task_when_no_pool_runs_sync(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()

        def add():
            return 10

        def handle_operation(result):
            self.handled = True
            expect(result.result()).to_equal(10)

        instance.queue(add, handle_operation)
        expect(self.handled).to_be_true()
Exemple #6
0
    def test_can_run_task_in_foreground(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()

        def add():
            return 10

        def handle_operation(result):
            self.handled = True
            expect(result.result()).to_equal(10)

        instance._execute_in_foreground(add, handle_operation)
        expect(self.handled).to_be_true()
Exemple #7
0
    def test_queueing_task_when_no_pool_runs_sync_and_exception_happens(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()
        exception = Exception('Boom')

        def add():
            raise exception

        def handle_operation(result):
            self.handled = True
            expect(result.result()).to_equal(exception)

        instance.queue(add, handle_operation)
        expect(self.handled).to_be_true()
    def test_can_run_task_in_foreground_and_exception_happens(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()
        exception = Exception('Boom')

        def add():
            raise exception

        def handle_operation(result):
            self.handled = True
            with expect.error_to_happen(Exception, message='Boom'):
                result.result()

        instance._execute_in_foreground(add, handle_operation)
        expect(self.handled).to_be_true()
Exemple #9
0
    def test_can_run_async(self):
        instance = ThreadPool.instance(10)
        expect(instance).not_to_be_null()

        def add():
            sleep(1)
            self.handled = True
            return 10

        instance._execute_in_pool(add, self.stop)
        expect(self.handled).to_be_false()
        result = self.wait()

        expect(self.handled).to_be_true()
        expect(result.result()).to_equal(10)
Exemple #10
0
    def test_can_run_task_in_foreground_and_exception_happens(self):
        instance = ThreadPool.instance(0)
        expect(instance).not_to_be_null()
        exception = Exception('Boom')

        def add():
            raise exception

        def handle_operation(result):
            self.handled = True
            with expect.error_to_happen(Exception, message='Boom'):
                result.result()

        instance._execute_in_foreground(add, handle_operation)
        expect(self.handled).to_be_true()
Exemple #11
0
    def test_can_cleanup_pool(self):
        instance = ThreadPool.instance(0)
        instance.pool = mock.Mock()
        instance.cleanup()

        expect(instance.pool.shutdown.called).to_be_true()
Exemple #12
0
    def test_can_cleanup_pool(self):
        instance = ThreadPool.instance(0)
        instance.pool = mock.Mock()
        instance.cleanup()

        expect(instance.pool.shutdown.called).to_be_true()