container_test.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from __future__ import unicode_literals
  2. from .. import unittest
  3. import mock
  4. from fig.packages import docker
  5. from fig.container import Container
  6. class ContainerTest(unittest.TestCase):
  7. def test_from_ps(self):
  8. container = Container.from_ps(None, {
  9. "Id":"abc",
  10. "Image":"busybox:latest",
  11. "Command":"sleep 300",
  12. "Created":1387384730,
  13. "Status":"Up 8 seconds",
  14. "Ports":None,
  15. "SizeRw":0,
  16. "SizeRootFs":0,
  17. "Names":["/figtest_db_1"]
  18. }, has_been_inspected=True)
  19. self.assertEqual(container.dictionary, {
  20. "Id": "abc",
  21. "Image":"busybox:latest",
  22. "Name": "/figtest_db_1",
  23. })
  24. def test_environment(self):
  25. container = Container(None, {
  26. 'Id': 'abc',
  27. 'Config': {
  28. 'Env': [
  29. 'FOO=BAR',
  30. 'BAZ=DOGE',
  31. ]
  32. }
  33. }, has_been_inspected=True)
  34. self.assertEqual(container.environment, {
  35. 'FOO': 'BAR',
  36. 'BAZ': 'DOGE',
  37. })
  38. def test_number(self):
  39. container = Container.from_ps(None, {
  40. "Id":"abc",
  41. "Image":"busybox:latest",
  42. "Command":"sleep 300",
  43. "Created":1387384730,
  44. "Status":"Up 8 seconds",
  45. "Ports":None,
  46. "SizeRw":0,
  47. "SizeRootFs":0,
  48. "Names":["/figtest_db_1"]
  49. }, has_been_inspected=True)
  50. self.assertEqual(container.number, 1)
  51. def test_name(self):
  52. container = Container.from_ps(None, {
  53. "Id":"abc",
  54. "Image":"busybox:latest",
  55. "Command":"sleep 300",
  56. "Names":["/figtest_db_1"]
  57. }, has_been_inspected=True)
  58. self.assertEqual(container.name, "figtest_db_1")
  59. def test_name_without_project(self):
  60. container = Container.from_ps(None, {
  61. "Id":"abc",
  62. "Image":"busybox:latest",
  63. "Command":"sleep 300",
  64. "Names":["/figtest_db_1"]
  65. }, has_been_inspected=True)
  66. self.assertEqual(container.name_without_project, "db_1")
  67. def test_inspect_if_not_inspected(self):
  68. mock_client = mock.create_autospec(docker.Client)
  69. container = Container(mock_client, dict(Id="the_id"))
  70. container.inspect_if_not_inspected()
  71. mock_client.inspect_container.assert_called_once_with("the_id")
  72. self.assertEqual(container.dictionary,
  73. mock_client.inspect_container.return_value)
  74. self.assertTrue(container.has_been_inspected)
  75. container.inspect_if_not_inspected()
  76. self.assertEqual(mock_client.inspect_container.call_count, 1)