Skip to content

Commit ca7151a

Browse files
committed
Split tests into unit and integration
1 parent 6e93279 commit ca7151a

12 files changed

Lines changed: 124 additions & 105 deletions

tests/integration/__init__.py

Whitespace-only changes.
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from __future__ import absolute_import
33
from .testcases import DockerClientTestCase
44
from mock import patch
5-
from fig.packages.six import StringIO
65
from fig.cli.main import TopLevelCommand
6+
from fig.packages.six import StringIO
77

88
class CLITestCase(DockerClientTestCase):
99
def setUp(self):
@@ -15,16 +15,6 @@ def tearDown(self):
1515
self.command.project.kill()
1616
self.command.project.remove_stopped()
1717

18-
def test_yaml_filename_check(self):
19-
self.command.base_dir = 'tests/fixtures/longer-filename-figfile'
20-
21-
project = self.command.project
22-
23-
self.assertTrue( project.get_service('definedinyamlnotyml'), "Service: definedinyamlnotyml should have been loaded from .yaml file" )
24-
25-
def test_help(self):
26-
self.assertRaises(SystemExit, lambda: self.command.dispatch(['-h'], None))
27-
2818
@patch('sys.stdout', new_callable=StringIO)
2919
def test_ps(self, mock_stdout):
3020
self.command.project.get_service('simple').create_container()
Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -4,65 +4,6 @@
44

55

66
class ProjectTest(DockerClientTestCase):
7-
def test_from_dict(self):
8-
project = Project.from_dicts('figtest', [
9-
{
10-
'name': 'web',
11-
'image': 'ubuntu'
12-
},
13-
{
14-
'name': 'db',
15-
'image': 'ubuntu'
16-
}
17-
], self.client)
18-
self.assertEqual(len(project.services), 2)
19-
self.assertEqual(project.get_service('web').name, 'web')
20-
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
21-
self.assertEqual(project.get_service('db').name, 'db')
22-
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
23-
24-
def test_from_dict_sorts_in_dependency_order(self):
25-
project = Project.from_dicts('figtest', [
26-
{
27-
'name': 'web',
28-
'image': 'ubuntu',
29-
'links': ['db'],
30-
},
31-
{
32-
'name': 'db',
33-
'image': 'ubuntu'
34-
}
35-
], self.client)
36-
37-
self.assertEqual(project.services[0].name, 'db')
38-
self.assertEqual(project.services[1].name, 'web')
39-
40-
def test_from_config(self):
41-
project = Project.from_config('figtest', {
42-
'web': {
43-
'image': 'ubuntu',
44-
},
45-
'db': {
46-
'image': 'ubuntu',
47-
},
48-
}, self.client)
49-
self.assertEqual(len(project.services), 2)
50-
self.assertEqual(project.get_service('web').name, 'web')
51-
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
52-
self.assertEqual(project.get_service('db').name, 'db')
53-
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
54-
55-
def test_from_config_throws_error_when_not_dict(self):
56-
with self.assertRaises(ConfigurationError):
57-
project = Project.from_config('figtest', {
58-
'web': 'ubuntu',
59-
}, self.client)
60-
61-
def test_get_service(self):
62-
web = self.create_service('web')
63-
project = Project('test', [web], self.client)
64-
self.assertEqual(project.get_service('web'), web)
65-
667
def test_start_stop_kill_remove(self):
678
web = self.create_service('web')
689
db = self.create_service('db')
Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,11 @@
11
from __future__ import unicode_literals
22
from __future__ import absolute_import
33
from fig import Service
4-
from fig.service import CannotBeScaledError, ConfigError
4+
from fig.service import CannotBeScaledError
55
from fig.packages.docker.errors import APIError
66
from .testcases import DockerClientTestCase
77

8-
98
class ServiceTest(DockerClientTestCase):
10-
def test_name_validations(self):
11-
self.assertRaises(ConfigError, lambda: Service(name=''))
12-
13-
self.assertRaises(ConfigError, lambda: Service(name=' '))
14-
self.assertRaises(ConfigError, lambda: Service(name='/'))
15-
self.assertRaises(ConfigError, lambda: Service(name='!'))
16-
self.assertRaises(ConfigError, lambda: Service(name='\xe2'))
17-
self.assertRaises(ConfigError, lambda: Service(name='_'))
18-
self.assertRaises(ConfigError, lambda: Service(name='____'))
19-
self.assertRaises(ConfigError, lambda: Service(name='foo_bar'))
20-
self.assertRaises(ConfigError, lambda: Service(name='__foo_bar__'))
21-
22-
Service('a')
23-
Service('foo')
24-
25-
def test_project_validation(self):
26-
self.assertRaises(ConfigError, lambda: Service(name='foo', project='_'))
27-
Service(name='foo', project='bar')
28-
29-
def test_config_validation(self):
30-
self.assertRaises(ConfigError, lambda: Service(name='foo', port=['8000']))
31-
Service(name='foo', ports=['8000'])
32-
339
def test_containers(self):
3410
foo = self.create_service('foo')
3511
bar = self.create_service('bar')
@@ -277,5 +253,3 @@ def test_scale_sets_ports(self):
277253
self.assertEqual(len(containers), 2)
278254
for container in containers:
279255
self.assertEqual(list(container.inspect()['HostConfig']['PortBindings'].keys()), ['8000/tcp'])
280-
281-
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from fig.packages.docker import Client
44
from fig.service import Service
55
from fig.cli.utils import docker_url
6-
from . import unittest
6+
from .. import unittest
77

88

99
class DockerClientTestCase(unittest.TestCase):

tests/unit/__init__.py

Whitespace-only changes.

tests/unit/cli_test.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import unicode_literals
2+
from __future__ import absolute_import
3+
from .. import unittest
4+
from fig.cli.main import TopLevelCommand
5+
from fig.packages.six import StringIO
6+
7+
class CLITestCase(unittest.TestCase):
8+
def test_yaml_filename_check(self):
9+
command = TopLevelCommand()
10+
command.base_dir = 'tests/fixtures/longer-filename-figfile'
11+
self.assertTrue(command.project.get_service('definedinyamlnotyml'))
12+
13+
def test_help(self):
14+
command = TopLevelCommand()
15+
with self.assertRaises(SystemExit):
16+
command.dispatch(['-h'], None)
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from __future__ import unicode_literals
2-
from .testcases import DockerClientTestCase
2+
from .. import unittest
33
from fig.container import Container
44

5-
class ContainerTest(DockerClientTestCase):
5+
class ContainerTest(unittest.TestCase):
66
def test_from_ps(self):
7-
container = Container.from_ps(self.client, {
7+
container = Container.from_ps(None, {
88
"Id":"abc",
99
"Image":"ubuntu:12.04",
1010
"Command":"sleep 300",
@@ -22,7 +22,7 @@ def test_from_ps(self):
2222
})
2323

2424
def test_environment(self):
25-
container = Container(self.client, {
25+
container = Container(None, {
2626
'ID': 'abc',
2727
'Config': {
2828
'Env': [
@@ -37,7 +37,7 @@ def test_environment(self):
3737
})
3838

3939
def test_number(self):
40-
container = Container.from_ps(self.client, {
40+
container = Container.from_ps(None, {
4141
"Id":"abc",
4242
"Image":"ubuntu:12.04",
4343
"Command":"sleep 300",

tests/unit/project_test.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from __future__ import unicode_literals
2+
from .. import unittest
3+
from fig.service import Service
4+
from fig.project import Project, ConfigurationError
5+
6+
class ProjectTest(unittest.TestCase):
7+
def test_from_dict(self):
8+
project = Project.from_dicts('figtest', [
9+
{
10+
'name': 'web',
11+
'image': 'ubuntu'
12+
},
13+
{
14+
'name': 'db',
15+
'image': 'ubuntu'
16+
}
17+
], None)
18+
self.assertEqual(len(project.services), 2)
19+
self.assertEqual(project.get_service('web').name, 'web')
20+
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
21+
self.assertEqual(project.get_service('db').name, 'db')
22+
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
23+
24+
def test_from_dict_sorts_in_dependency_order(self):
25+
project = Project.from_dicts('figtest', [
26+
{
27+
'name': 'web',
28+
'image': 'ubuntu',
29+
'links': ['db'],
30+
},
31+
{
32+
'name': 'db',
33+
'image': 'ubuntu'
34+
}
35+
], None)
36+
37+
self.assertEqual(project.services[0].name, 'db')
38+
self.assertEqual(project.services[1].name, 'web')
39+
40+
def test_from_config(self):
41+
project = Project.from_config('figtest', {
42+
'web': {
43+
'image': 'ubuntu',
44+
},
45+
'db': {
46+
'image': 'ubuntu',
47+
},
48+
}, None)
49+
self.assertEqual(len(project.services), 2)
50+
self.assertEqual(project.get_service('web').name, 'web')
51+
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
52+
self.assertEqual(project.get_service('db').name, 'db')
53+
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
54+
55+
def test_from_config_throws_error_when_not_dict(self):
56+
with self.assertRaises(ConfigurationError):
57+
project = Project.from_config('figtest', {
58+
'web': 'ubuntu',
59+
}, None)
60+
61+
def test_get_service(self):
62+
web = Service(
63+
project='figtest',
64+
name='web',
65+
client=None,
66+
image="ubuntu",
67+
)
68+
project = Project('test', [web], None)
69+
self.assertEqual(project.get_service('web'), web)

tests/unit/service_test.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from __future__ import unicode_literals
2+
from __future__ import absolute_import
3+
from .. import unittest
4+
from fig import Service
5+
from fig.service import ConfigError
6+
7+
class ServiceTest(unittest.TestCase):
8+
def test_name_validations(self):
9+
self.assertRaises(ConfigError, lambda: Service(name=''))
10+
11+
self.assertRaises(ConfigError, lambda: Service(name=' '))
12+
self.assertRaises(ConfigError, lambda: Service(name='/'))
13+
self.assertRaises(ConfigError, lambda: Service(name='!'))
14+
self.assertRaises(ConfigError, lambda: Service(name='\xe2'))
15+
self.assertRaises(ConfigError, lambda: Service(name='_'))
16+
self.assertRaises(ConfigError, lambda: Service(name='____'))
17+
self.assertRaises(ConfigError, lambda: Service(name='foo_bar'))
18+
self.assertRaises(ConfigError, lambda: Service(name='__foo_bar__'))
19+
20+
Service('a')
21+
Service('foo')
22+
23+
def test_project_validation(self):
24+
self.assertRaises(ConfigError, lambda: Service(name='foo', project='_'))
25+
Service(name='foo', project='bar')
26+
27+
def test_config_validation(self):
28+
self.assertRaises(ConfigError, lambda: Service(name='foo', port=['8000']))
29+
Service(name='foo', ports=['8000'])

0 commit comments

Comments
 (0)