test_dev_parity_with_build_server.py 920 B

12345678910111213141516171819202122
  1. import ruamel.yaml
  2. def test_dev_docker_compose_has_same_services_as_build_server_configuration():
  3. yaml = ruamel.yaml.YAML(typ='safe')
  4. dev_services = {
  5. name: service
  6. for name, service in yaml.load(open('tests/end-to-end/docker-compose.yaml').read())['services'].items()
  7. if name != 'tests'
  8. }
  9. build_server_services = tuple(yaml.load_all(open('.drone.yml').read()))[0]['services']
  10. assert len(dev_services) == len(build_server_services)
  11. for build_service in build_server_services:
  12. dev_service = dev_services[build_service['name']]
  13. assert dev_service['image'] == build_service['image']
  14. assert dev_service['environment'] == build_service['environment']
  15. if 'command' in dev_service or 'commands' in build_service:
  16. assert len(build_service['commands']) <= 1
  17. assert dev_service['command'] == build_service['commands'][0]