123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/usr/bin/python3
-
- import docker_rerun
- import subprocess
- from io import StringIO
- from nose.tools import with_setup
-
-
- def _run(cmd):
- subprocess.call(cmd,
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL)
-
-
- def setup():
- _run(['docker', 'run', '--name=testA', '-d', 'hello-world'])
- _run(['docker', 'run', '--name=testB', '-d', 'hello-world'])
-
-
- def teardown():
- _run(['docker', 'rm', '-f', 'testA'])
- _run(['docker', 'rm', '-f', 'testB'])
-
-
- def setup_each():
- _run(['docker', 'rm', '-f', 'test123'])
-
-
- def teardown_each():
- _run(['docker', 'rm', '-f', 'test123'])
-
-
- @with_setup(setup, teardown)
- def test_command_matches():
- yield check, ['docker', 'run', '--name=test123', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '-d', 'hello-world:latest']
- yield check, ['docker', 'run', '--name=test123', '-d', 'hello-world', '/hello', 'world...']
- yield check, ['docker', 'run', '--env=PATH=/root', '--env=Z=X', '--name=test123', '-d', 'hello-world']
- yield check, ['docker', 'run', '--env=FOO=bar baz', '--name=test123', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '--restart=always', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '--restart=on-failure:10', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '--network=host', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '-d', '-p=127.0.0.1:443:443', '-p=127.0.0.1::1336/udp', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '-d', '-p=443', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '-d', '-p=80:80', '-p=90', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '--user=root', '-d', 'hello-world', '/hello', 'foobar']
- yield check, ['docker', 'run', '--name=test123', '--network=host', '--user=root:root', '-d', 'hello-world']
- yield check, ['docker', 'run', '--name=test123', '--volume=/dev/null:/null', '--volume=/dev/urandom:/mnt/random', '-d', 'hello-world']
- yield check, ['docker', 'run', '--label=com.example=123 456', '--name=test123', '-d', 'hello-world']
- yield check, ['docker', 'run', '--label=com.example.1', '--label=com.example.2=345', '--name=test123', '-d', 'hello-world']
- yield check, ['docker', 'run', '--link=testA:bar', '--link=testB', '--name=test123', '-d', 'hello-world']
-
-
- @with_setup(setup, teardown)
- def test_modifiers():
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--image', 'tutum/hello-world'],
- ['docker', 'run', '--name=test123', '-d', 'tutum/hello-world'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--image', 'hello-world:latest'],
- ['docker', 'run', '--name=test123', '-d', 'hello-world:latest'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--port', '123:456'],
- ['docker', 'run', '--name=test123', '-d', '-p=123:456', 'hello-world'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--port', '123:456', '-p', '80'],
- ['docker', 'run', '--name=test123', '-d', '-p=123:456', '-p=80', 'hello-world'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--tag', 'latest'],
- ['docker', 'run', '--name=test123', '-d', 'hello-world:latest'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--network', 'none'],
- ['docker', 'run', '--name=test123', '--network=none', '-d', 'hello-world'])
- yield (check,
- ['docker', 'run', '--name=test123', '--network=host', '-d', 'hello-world'],
- ['--network', 'none'],
- ['docker', 'run', '--name=test123', '--network=none', '-d', 'hello-world'])
- yield (check,
- ['docker', 'run', '--name=test123', '-d', 'hello-world'],
- ['--label', 'testLabel'],
- ['docker', 'run', '--label=testLabel', '--name=test123', '-d', 'hello-world'])
- yield (check,
- ['docker', 'run', '--label=test', '--name=test123', '-d', 'hello-world'],
- ['--label', 'test2'],
- ['docker', 'run', '--label=test', '--label=test2', '--name=test123', '-d', 'hello-world'])
- yield (check,
- ['docker', 'run', '--label=test=1', '--name=test123', '-d', 'hello-world'],
- ['--label', 'test=2'],
- ['docker', 'run', '--label=test=2', '--name=test123', '-d', 'hello-world'])
-
-
- @with_setup(setup_each, teardown_each)
- def check(command, args=[], expected=None):
- _run(command)
- output = StringIO()
- docker_rerun.main(['--dry-run', 'test123'] + args, output)
- output = output.getvalue().splitlines()
- expected = ' '.join(expected or command)
- assert output[3] == expected, 'Expected "%s" but got "%s"' % (expected, output[3])
|