Integration testing Nameko microservices

Earlier we looked at testing a service in isolation by spawning a single worker. This is great for unit testing but it is not a viable option for integration testing.

Nameko gives us the ability to test multiple services working in tandem in a single test. Look at the following:

def test_root_http(web_session, web_config, container_factory): 
    web_config['AMQP_URI'] = 'pyamqp://guest:guest@localhost' 
 
    web_server = container_factory(WebServer, web_config) 
    konnichiwa = container_factory(KonnichiwaService, web_config) 
    web_server.start() 
    konnichiwa.start() 
 
    result = web_session.get('/') 
 
    assert result.text == 'Konnichiwa!' 

As you can see in the preceding code, Nameko also gives us access to the following test ...

Get Python Programming Blueprints now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.