Kaydet (Commit) 6ed0c010 authored tarafından Joffrey F's avatar Joffrey F

Adjust tests and add newest engine version to Jenkinsfile

Signed-off-by: 's avatarJoffrey F <joffrey@docker.com>
üst 2bdaf7f8
......@@ -7,7 +7,7 @@ def images = [:]
// Note: Swarm in dind seem notoriously flimsy with 1.12.1+, which is why we're
// sticking with 1.12.0 for the 1.12 series
def dockerVersions = ["1.12.0", "1.13.1", "17.04.0-ce-rc1"]
def dockerVersions = ["1.12.0", "1.13.1", "17.04.0-ce", "17.05.0-ce"]
def buildImage = { name, buildargs, pyTag ->
img = docker.image(name)
......@@ -35,7 +35,7 @@ def buildImages = { ->
}
def getAPIVersion = { engineVersion ->
def versionMap = ['1.12.': '1.24', '1.13.': '1.26', '17.04': '1.27']
def versionMap = ['1.12.': '1.24', '1.13.': '1.26', '17.04': '1.27', '17.05': '1.29']
return versionMap[engineVersion.substring(0, 5)]
}
......
......@@ -41,8 +41,8 @@ integration-test: build
integration-test-py3: build-py3
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock docker-sdk-python3 py.test tests/integration/${file}
TEST_API_VERSION ?= 1.27
TEST_ENGINE_VERSION ?= 17.04.0-ce-rc1
TEST_API_VERSION ?= 1.29
TEST_ENGINE_VERSION ?= 17.05.0-ce
.PHONY: integration-dind
integration-dind: build build-py3
......
......@@ -54,13 +54,23 @@ def requires_api_version(version):
)
def requires_experimental(f):
@functools.wraps(f)
def wrapped(self, *args, **kwargs):
if not self.client.info()['ExperimentalBuild']:
pytest.skip('Feature requires Docker Engine experimental mode')
return f(self, *args, **kwargs)
return wrapped
def requires_experimental(until=None):
test_version = os.environ.get(
'DOCKER_TEST_API_VERSION', docker.constants.DEFAULT_DOCKER_API_VERSION
)
def req_exp(f):
@functools.wraps(f)
def wrapped(self, *args, **kwargs):
if not self.client.info()['ExperimentalBuild']:
pytest.skip('Feature requires Docker Engine experimental mode')
return f(self, *args, **kwargs)
if until and docker.utils.version_gte(test_version, until):
return f
return wrapped
return req_exp
def wait_on_condition(condition, delay=0.1, timeout=40):
......
......@@ -103,18 +103,28 @@ class ServiceTest(BaseAPIIntegrationTest):
assert services[0]['ID'] == svc_id['ID']
@requires_api_version('1.25')
@requires_experimental
@requires_experimental(until='1.29')
def test_service_logs(self):
name, svc_id = self.create_simple_service()
assert self.get_service_container(name, include_stopped=True)
logs = self.client.service_logs(svc_id, stdout=True, is_tty=False)
log_line = next(logs)
attempts = 20
while True:
if attempts == 0:
self.fail('No service logs produced by endpoint')
return
logs = self.client.service_logs(svc_id, stdout=True, is_tty=False)
try:
log_line = next(logs)
except StopIteration:
attempts -= 1
time.sleep(0.1)
continue
else:
break
if six.PY3:
log_line = log_line.decode('utf-8')
assert 'hello\n' in log_line
assert 'com.docker.swarm.service.id={}'.format(
svc_id['ID']
) in log_line
def test_create_service_custom_log_driver(self):
container_spec = docker.types.ContainerSpec(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment