compose/plum/tests/service_test.py
2013-12-09 12:28:53 +00:00

59 lines
1.7 KiB
Python

from unittest import TestCase
from docker import Client
from plum import Service
class NameTestCase(TestCase):
def test_name_validations(self):
self.assertRaises(ValueError, lambda: Service(name=''))
self.assertRaises(ValueError, lambda: Service(name=' '))
self.assertRaises(ValueError, lambda: Service(name='/'))
self.assertRaises(ValueError, lambda: Service(name='!'))
self.assertRaises(ValueError, lambda: Service(name='\xe2'))
Service('a')
Service('foo')
Service('foo_bar')
Service('__foo_bar__')
Service('_')
Service('_____')
class ScalingTestCase(TestCase):
def setUp(self):
self.client = Client('http://127.0.0.1:4243')
self.client.pull('ubuntu')
for c in self.client.containers(all=True):
self.client.kill(c['Id'])
self.client.remove_container(c['Id'])
self.service = Service(
name="test",
client=self.client,
image="ubuntu",
command=["/bin/sleep", "300"],
)
def test_up_scale_down(self):
self.assertEqual(len(self.service.containers), 0)
self.service.start()
self.assertEqual(len(self.service.containers), 1)
self.service.start()
self.assertEqual(len(self.service.containers), 1)
self.service.scale(2)
self.assertEqual(len(self.service.containers), 2)
self.service.scale(1)
self.assertEqual(len(self.service.containers), 1)
self.service.stop()
self.assertEqual(len(self.service.containers), 0)
self.service.stop()
self.assertEqual(len(self.service.containers), 0)