Example #1
0
 async def test_cannot_create_empty_group(self, ray_context):
     builder = ParallelPipeline()
     builder.add_module(ModuleA('m1', group='g1'))
     builder.add_module(ModuleB('m2', group='g2').depends_on(builder.get_module('m1')))
     builder.add_module(ModuleC('m3', group='g3').depends_on(builder.get_module('m2')))
     builder.add_group(builder.Group('g4'))
     with pytest.raises(Exception):
         await builder.build()
Example #2
0
    async def test_should_fail_on_adding_to_group_non_callable_hooks(self, ray_context):
        builder = ParallelPipeline()

        def callable_1():
            pass

        with pytest.raises(Exception):
            builder.add_group(builder.Group('g1', after_created=[callable_1, "test"]))
Example #3
0
    async def test_should_call_hooks_in_groups(self, ray_context):
        builder = ParallelPipeline()

        callable_1_counter = Queue()
        callable_2_counter = Queue()

        def callable_1():
            callable_1_counter.put(1)

        def callable_2():
            callable_2_counter.put(2)

        builder.add_group(builder.Group('g1', after_created=[callable_1, callable_2]))
        builder.add_group(builder.Group('g2', after_created=[callable_2]))
        builder.add_module(ModuleA('m1', group='g1'))
        builder.add_module(ModuleB('m2', group='g2').depends_on(builder.get_module('m1')))
        pipeline = await builder.build()
        assert isinstance(pipeline, ParallelPipeline.Runtime)
        assert len(pipeline.groups) == 2
        assert set([g.name for g in pipeline.groups]) == {'g1', 'g2'}
        assert callable_1_counter.qsize() == 1
        assert callable_2_counter.qsize() == 2
Example #4
0
    async def test_should_fail_on_adding_to_group_hooks_with_incorrect_type(self, ray_context):
        builder = ParallelPipeline()

        with pytest.raises(Exception):
            builder.add_group(builder.Group('g1', after_created="test"))