summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2017-05-09 17:18:46 -0700
committerJoffrey F <joffrey@docker.com>2017-05-09 17:18:46 -0700
commit6ed0c010189dc4d0ffb0511ae145346bfdc49117 (patch)
tree2075896151bdec21cf93a177361537e0cb48ef59
parent2bdaf7f857645244ff38defe61feecbf9af11d68 (diff)
downloaddocker-py-test_17.05_engine.tar.gz
Adjust tests and add newest engine version to Jenkinsfiletest_17.05_engine
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r--Jenkinsfile4
-rw-r--r--Makefile4
-rw-r--r--tests/helpers.py24
-rw-r--r--tests/integration/api_service_test.py22
4 files changed, 37 insertions, 17 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index a61e6d5..987df7a 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -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)]
}
diff --git a/Makefile b/Makefile
index cd11746..e4cd3f7 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/tests/helpers.py b/tests/helpers.py
index 1d86619..124ae2d 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -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):
diff --git a/tests/integration/api_service_test.py b/tests/integration/api_service_test.py
index 6858ad0..914e516 100644
--- a/tests/integration/api_service_test.py
+++ b/tests/integration/api_service_test.py
@@ -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(