Example #1
0
def test_service_generator():
    
    import ginkgo.core
    class MyService(ginkgo.core.Service): pass

    expected_children = [('hi', MyService()), ('also named', MyService())]
    expected_main = MyService()

    def service():
        for name, child in expected_children:
            yield name, child
        yield expected_main
        
    from ginkgo.runner import Runner
    
    Runner._args = ['run', '-C', 'config', '-u', 'nobody']
    Runner._opener = mock_open({'{}/config'.format(os.getcwd()): ""})

    runner = Runner()
    
    service_gen = service()
        
    children, main_service = runner._expand_service_generators(service_gen)

    print children, main_service
    assert children == expected_children
    assert main_service == expected_main