Add an acceptance test for bundle.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2016-06-16 15:15:17 -04:00
parent 95207561bb
commit 5640bd42a8
3 changed files with 37 additions and 1 deletions

View File

@ -136,7 +136,7 @@ def fetch_image_digest(service):
repo, _, _ = parse_repository_tag(service.options['image']) repo, _, _ = parse_repository_tag(service.options['image'])
identifier = '{repo}@{digest}'.format(repo=repo, digest=digest) identifier = '{repo}@{digest}'.format(repo=repo, digest=digest)
# only do this is RepoTags isn't already populated # only do this if RepoDigests isn't already populated
image = service.image() image = service.image()
if not image['RepoDigests']: if not image['RepoDigests']:
# Pull by digest so that image['RepoDigests'] is populated for next time # Pull by digest so that image['RepoDigests'] is populated for next time

View File

@ -12,6 +12,7 @@ from collections import Counter
from collections import namedtuple from collections import namedtuple
from operator import attrgetter from operator import attrgetter
import py
import yaml import yaml
from docker import errors from docker import errors
@ -378,6 +379,32 @@ class CLITestCase(DockerClientTestCase):
] ]
assert not containers assert not containers
def test_bundle_with_digests(self):
self.base_dir = 'tests/fixtures/bundle-with-digests/'
tmpdir = py.test.ensuretemp('cli_test_bundle')
self.addCleanup(tmpdir.remove)
filename = str(tmpdir.join('example.dab'))
self.dispatch(['bundle', '--output', filename])
with open(filename, 'r') as fh:
bundle = json.load(fh)
assert bundle == {
'Version': '0.1',
'Services': {
'web': {
'Image': ('dockercloud/hello-world@sha256:fe79a2cfbd17eefc3'
'44fb8419420808df95a1e22d93b7f621a7399fd1e9dca1d'),
'Networks': ['default'],
},
'redis': {
'Image': ('redis@sha256:a84cb8f53a70e19f61ff2e1d5e73fb7ae62d'
'374b2b7392de1e7d77be26ef8f7b'),
'Networks': ['default'],
}
},
}
def test_create(self): def test_create(self):
self.dispatch(['create']) self.dispatch(['create'])
service = self.project.get_service('simple') service = self.project.get_service('simple')

View File

@ -0,0 +1,9 @@
version: '2.0'
services:
web:
image: dockercloud/hello-world@sha256:fe79a2cfbd17eefc344fb8419420808df95a1e22d93b7f621a7399fd1e9dca1d
redis:
image: redis@sha256:a84cb8f53a70e19f61ff2e1d5e73fb7ae62d374b2b7392de1e7d77be26ef8f7b