network_test.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from __future__ import absolute_import
  2. from __future__ import unicode_literals
  3. import pytest
  4. from .. import unittest
  5. from compose.config import ConfigurationError
  6. from compose.network import check_remote_network_config
  7. from compose.network import Network
  8. class NetworkTest(unittest.TestCase):
  9. def test_check_remote_network_config_success(self):
  10. options = {'com.docker.network.driver.foo': 'bar'}
  11. net = Network(
  12. None, 'compose_test', 'net1', 'bridge',
  13. options
  14. )
  15. check_remote_network_config(
  16. {'Driver': 'bridge', 'Options': options}, net
  17. )
  18. def test_check_remote_network_config_whitelist(self):
  19. options = {'com.docker.network.driver.foo': 'bar'}
  20. remote_options = {
  21. 'com.docker.network.driver.overlay.vxlanid_list': '257',
  22. 'com.docker.network.driver.foo': 'bar'
  23. }
  24. net = Network(
  25. None, 'compose_test', 'net1', 'overlay',
  26. options
  27. )
  28. check_remote_network_config(
  29. {'Driver': 'overlay', 'Options': remote_options}, net
  30. )
  31. def test_check_remote_network_config_driver_mismatch(self):
  32. net = Network(None, 'compose_test', 'net1', 'overlay')
  33. with pytest.raises(ConfigurationError):
  34. check_remote_network_config({'Driver': 'bridge', 'Options': {}}, net)
  35. def test_check_remote_network_config_options_mismatch(self):
  36. net = Network(None, 'compose_test', 'net1', 'overlay')
  37. with pytest.raises(ConfigurationError):
  38. check_remote_network_config({'Driver': 'overlay', 'Options': {
  39. 'com.docker.network.driver.foo': 'baz'
  40. }}, net)