network_test.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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(
  35. {'Driver': 'bridge', 'Options': {}}, net
  36. )
  37. def test_check_remote_network_config_options_mismatch(self):
  38. net = Network(None, 'compose_test', 'net1', 'overlay')
  39. with pytest.raises(ConfigurationError):
  40. check_remote_network_config({'Driver': 'overlay', 'Options': {
  41. 'com.docker.network.driver.foo': 'baz'
  42. }}, net)
  43. def test_check_remote_network_config_null_remote(self):
  44. net = Network(None, 'compose_test', 'net1', 'overlay')
  45. check_remote_network_config(
  46. {'Driver': 'overlay', 'Options': None}, net
  47. )