summaryrefslogtreecommitdiff
path: root/tests/integration
Commit message (Collapse)AuthorAgeFilesLines
* Don't install mock backportHugo van Kemenade2021-10-111-5/+1
| | | | Signed-off-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* Merge pull request #2809 from feliperuhland/add-service-capabilityAnca Iordache2021-10-082-0/+68
|\ | | | | Add service capability
| * Add `CapabilityAdd` and `CapabilityDrop` toFelipe Ruhland2021-04-072-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ContainerSpec Docker Engine v1.41 added `CapAdd` and `CapDrop` as part of the ContainerSpec, and `docker-py` should do the same. ``` GET /services now returns CapAdd and CapDrop as part of the ContainerSpec. GET /services/{id} now returns CapAdd and CapDrop as part of the ContainerSpec. POST /services/create now accepts CapAdd and CapDrop as part of the ContainerSpec. POST /services/{id}/update now accepts CapAdd and CapDrop as part of the ContainerSpec. GET /tasks now returns CapAdd and CapDrop as part of the ContainerSpec. GET /tasks/{id} now returns CapAdd and CapDrop as part of the ContainerSpec. ``` I added capabilities on docstrings, `service.create` init method and create tests for that. That change was mention in issue #2802. Signed-off-by: Felipe Ruhland <felipe.ruhland@gmail.com>
* | Merge branch 'master' into feat/add_templating_parameter_docker_configAnca Iordache2021-10-0716-92/+76
|\ \
| * | use python3.6+ constructsAnthony Sottile2021-07-0516-92/+76
| |/ | | | | | | Signed-off-by: Anthony Sottile <asottile@umich.edu>
* | Add the possibility to set a templating driver when creating a new Docker configSebastiano Mariani2021-06-031-0/+13
|/ | | | Signed-off-by: Sebastiano Mariani <smariani@vmware.com>
* Remove support to pre python 3.6set-minimal-python-to-3_6Ulysses Souza2021-03-223-43/+19
| | | | Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
* Unit and integration tests addedWojciechowskiPiotr2021-02-091-0/+13
| | | | Signed-off-by: WojciechowskiPiotr <devel@it-playground.pl>
* Merge pull request #2671 from aiordache/default_tagAnca Iordache2020-10-162-3/+3
|\ | | | | Set image default tag on pull
| * Set image default tag on pullaiordache2020-09-162-3/+3
| | | | | | | | Signed-off-by: aiordache <anca.iordache@docker.com>
* | Shell out to SSH client for an ssh connectionaiordache2020-10-131-1/+0
|/ | | | Signed-off-by: aiordache <anca.iordache@docker.com>
* Fix CreateContainerTest.test_invalid_log_driver_raises_exceptionSebastiaan van Stijn2020-07-171-1/+1
| | | | | | | | | | | | | | This test was updated in 7d92fbdee1b8621f54faa595ba53d7ef78ef1acc, but omitted the "error" prefix in the message, causing the test to fail; _________ CreateContainerTest.test_invalid_log_driver_raises_exception _________ tests/integration/api_container_test.py:293: in test_invalid_log_driver_raises_exception assert excinfo.value.explanation in expected_msgs E AssertionError: assert 'error looking up logging plugin asdf: plugin "asdf" not found' in ["logger: no log driver named 'asdf' is registered", 'looking up logging plugin asdf: plugin "asdf" not found'] E + where 'error looking up logging plugin asdf: plugin "asdf" not found' = APIError(HTTPError('400 Client Error: Bad Request for url: http+docker://localhost/v1.39/containers/create')).explanation E + where APIError(HTTPError('400 Client Error: Bad Request for url: http+docker://localhost/v1.39/containers/create')) = <ExceptionInfo APIError tblen=6>.value Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Merge pull request #2551 from haboustak/2550-add-driveropts-to-endpointconfigUlysses Souza2020-07-021-0/+21
|\ | | | | Add support for DriverOpts in EndpointConfig
| * Add support for DriverOpts in EndpointConfigMike Haboustak2020-04-301-0/+21
| | | | | | | | | | | | | | Docker API 1.32 added support for providing options to a network driver via EndpointConfig when connecting a container to a network. Signed-off-by: Mike Haboustak <haboustak@gmail.com>
* | add test for context load without orchestratoraiordache2020-06-021-0/+7
|/ | | | Signed-off-by: aiordache <anca.iordache@docker.com>
* Fix tests to support both log plugin feedbacksWilson Júnior2020-04-211-3/+6
| | | | | Signed-off-by: Wilson Júnior <wilsonpjunior@gmail.com> Docker-DCO-1.1-Signed-off-by: Wilson Júnior <wilsonpjunior@gmail.com> (github: wpjunior)
* xfail "docker top" tests, and adjust for alpine imageSebastiaan van Stijn2020-02-171-8/+7
| | | | Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Implement context management, lifecycle and unittests.Anca Iordache2020-02-051-0/+52
| | | | Signed-off-by: Anca Iordache <anca.iordache@docker.com>
* Fix ImageCollectionTest.test_pull_multiple flakinessSebastiaan van Stijn2020-01-061-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ImageCollectionTest.test_pull_multiple test performs a `docker pull` without a `:tag` specified) to pull all tags of the given repository (image). After pulling the image, the image(s) pulled are checked to verify if the list of images contains the `:latest` tag. However, the test assumes that all tags of the image are tags for the same version of the image (same digest), and thus a *single* image is returned, which is not always the case. Currently, the `hello-world:latest` and `hello-world:linux` tags point to a different digest, therefore the `client.images.pull()` returns multiple images: one image for digest, making the test fail: =================================== FAILURES =================================== ____________________ ImageCollectionTest.test_pull_multiple ____________________ tests/integration/models_images_test.py:90: in test_pull_multiple assert len(images) == 1 E AssertionError: assert 2 == 1 E + where 2 = len([<Image: 'hello-world:linux'>, <Image: 'hello-world:latest'>]) This patch updates the test to not assume a single image is returned, and instead loop through the list of images and check if any of the images contains the `:latest` tag. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Fix broken test due to BUSYBOX -> TEST_IMG renameSebastiaan van Stijn2019-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | The BUSYBOX variable was renamed to TEST_IMG in 54b48a9b7ab59b4dcf49acf49ddf52035ba3ea08, however 0ddf428b6ce7accdac3506b45047df2cb72941ec got merged after that change, but was out of date, and therefore caused the tests to fail: ``` =================================== FAILURES =================================== ________ ServiceTest.test_create_service_with_network_attachment_config ________ tests/integration/api_service_test.py:379: in test_create_service_with_network_attachment_config container_spec = docker.types.ContainerSpec(BUSYBOX, ['true']) E NameError: global name 'BUSYBOX' is not defined ``` Fix the test by using the correct variable name. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Merge pull request #2333 from hannseman/network-attachment-configJoffrey F2019-08-271-0/+29
|\ | | | | Add NetworkAttachmentConfig for service create/update
| * Add NetworkAttachmentConfig typeHannes Ljungberg2019-05-031-0/+29
| | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
* | Update alpine version to 3.10, and rename BUSYBOX variableSebastiaan van Stijn2019-08-1012-189/+189
| | | | | | | | Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* | Merge pull request #2382 from thaJeztah/fix_platform_testsJoffrey F2019-07-182-4/+8
|\ \ | | | | | | Adjust `--platform` tests for changes in docker engine
| * | Adjust `--platform` tests for changes in docker engineSebastiaan van Stijn2019-07-152-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These tests started failing on recent versions of the engine because the error string changed, and due to a regression, the status code for one endpoint changed from a 400 to a 500. On Docker 18.03: The `docker build` case properly returns a 400, and "invalid platform" as error string; ```bash docker build --platform=foobar -<<EOF FROM busybox EOF Sending build context to Docker daemon 2.048kB Error response from daemon: invalid platform: invalid platform os "foobar" ``` ``` DEBU[2019-07-15T12:17:22.745511870Z] Calling GET /_ping DEBU[2019-07-15T12:17:22.748224796Z] Calling POST /session DEBU[2019-07-15T12:17:22.748692282Z] Calling POST /v1.37/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&platform=foobar&rm=1&session=d7b6ceba9d8d0aed67a805528554feb5285781fe888a4bf4e0c15cb09bffd614&shmsize=0&target=&ulimits=null ``` The `docker pull --platform=foobar hello-world:latest` case incorrectly returns a 500 ``` DEBU[2019-07-15T12:16:08.744827612Z] Calling POST /v1.37/images/create?fromImage=hello-world&platform=foobar&tag=latest DEBU[2019-07-15T12:16:08.745594874Z] FIXME: Got an API for which error does not match any expected type!!!: invalid platform: invalid platform os "foobar" error_type="*errors.errorString" module=api ERRO[2019-07-15T12:16:08.745916686Z] Handler for POST /v1.37/images/create returned error: invalid platform: invalid platform os "foobar" DEBU[2019-07-15T12:16:08.746191172Z] FIXME: Got an API for which error does not match any expected type!!!: invalid platform: invalid platform os "foobar" error_type="*errors.errorString" module=api ``` On Docker 18.09; ```bash docker build --platform=foobar -<<EOF FROM busybox EOF Error response from daemon: "foobar": unknown operating system or architecture: invalid argument ``` Which incorrectly returns a 500 status; ``` DEBU[2019-07-15T11:59:20.687268380Z] Calling POST /v1.39/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&platform=foobar&rm=1&session=jko7kejjvs93judyfnq7shoda&shmsize=0&target=&ulimits=null&version=1 DEBU[2019-07-15T11:59:20.687282279Z] Calling POST /session INFO[2019-07-15T11:59:20.687761392Z] parsed scheme: "" module=grpc INFO[2019-07-15T11:59:20.687833668Z] scheme "" not registered, fallback to default scheme module=grpc INFO[2019-07-15T11:59:20.688017578Z] ccResolverWrapper: sending new addresses to cc: [{ 0 <nil>}] module=grpc INFO[2019-07-15T11:59:20.688270160Z] ClientConn switching balancer to "pick_first" module=grpc INFO[2019-07-15T11:59:20.688353083Z] pickfirstBalancer: HandleSubConnStateChange: 0xc4209b0630, CONNECTING module=grpc INFO[2019-07-15T11:59:20.688985698Z] pickfirstBalancer: HandleSubConnStateChange: 0xc4209b0630, READY module=grpc DEBU[2019-07-15T11:59:20.812700550Z] client is session enabled DEBU[2019-07-15T11:59:20.813139288Z] FIXME: Got an API for which error does not match any expected type!!!: invalid argument github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init /go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs/errors.go:40 github.com/docker/docker/vendor/github.com/containerd/containerd/content.init <autogenerated>:1 github.com/docker/docker/builder/builder-next.init <autogenerated>:1 github.com/docker/docker/api/server/backend/build.init <autogenerated>:1 main.init <autogenerated>:1 runtime.main /usr/local/go/src/runtime/proc.go:186 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:2361 error_type="*errors.fundamental" module=api ERRO[2019-07-15T11:59:20.813210677Z] Handler for POST /v1.39/build returned error: "foobar": unknown operating system or architecture: invalid argument DEBU[2019-07-15T11:59:20.813276737Z] FIXME: Got an API for which error does not match any expected type!!!: invalid argument github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init /go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs/errors.go:40 github.com/docker/docker/vendor/github.com/containerd/containerd/content.init <autogenerated>:1 github.com/docker/docker/builder/builder-next.init <autogenerated>:1 github.com/docker/docker/api/server/backend/build.init <autogenerated>:1 main.init <autogenerated>:1 runtime.main /usr/local/go/src/runtime/proc.go:186 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:2361 error_type="*errors.fundamental" module=api ``` Same for the `docker pull --platform=foobar hello-world:latest` case: ```bash docker pull --platform=foobar hello-world:latest Error response from daemon: "foobar": unknown operating system or architecture: invalid argument ``` ``` DEBU[2019-07-15T12:00:18.812995330Z] Calling POST /v1.39/images/create?fromImage=hello-world&platform=foobar&tag=latest DEBU[2019-07-15T12:00:18.813229172Z] FIXME: Got an API for which error does not match any expected type!!!: invalid argument github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init /go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs/errors.go:40 github.com/docker/docker/vendor/github.com/containerd/containerd/content.init <autogenerated>:1 github.com/docker/docker/builder/builder-next.init <autogenerated>:1 github.com/docker/docker/api/server/backend/build.init <autogenerated>:1 main.init <autogenerated>:1 runtime.main /usr/local/go/src/runtime/proc.go:186 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:2361 error_type="*errors.fundamental" module=api ERRO[2019-07-15T12:00:18.813365546Z] Handler for POST /v1.39/images/create returned error: "foobar": unknown operating system or architecture: invalid argument DEBU[2019-07-15T12:00:18.813461428Z] FIXME: Got an API for which error does not match any expected type!!!: invalid argument github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs.init /go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/errdefs/errors.go:40 github.com/docker/docker/vendor/github.com/containerd/containerd/content.init <autogenerated>:1 github.com/docker/docker/builder/builder-next.init <autogenerated>:1 github.com/docker/docker/api/server/backend/build.init <autogenerated>:1 main.init <autogenerated>:1 runtime.main /usr/local/go/src/runtime/proc.go:186 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:2361 error_type="*errors.fundamental" module=api ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* | | xfail test_init_swarm_data_path_addrSebastiaan van Stijn2019-07-121-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | This test can fail if `eth0` has multiple IP addresses; E docker.errors.APIError: 400 Client Error: Bad Request ("interface eth0 has more than one IPv6 address (2001:db8:1::242:ac11:2 and fe80::42:acff:fe11:2)") Which is not a failiure, but depends on the environment that the test is run in. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* | Remove exec detach testMichael Crosby2019-06-251-18/+0
| | | | | | | | | | | | Forking off an exec process and detaching isn't a supported method Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
* | Xfail test_attach_stream_and_cancel on TLSUlysses Souza2019-05-181-0/+3
|/ | | | | | This test is quite flaky on ssl integration test Signed-off-by: Ulysses Souza <ulysses.souza@docker.com>
* Change use_config_proxy default value to True to match CLI behaviorJoffrey F2019-05-012-7/+7
| | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* Merge pull request #2295 from hannseman/swarm-rotate-tokenJoffrey F2019-05-011-0/+13
|\ | | | | Add support for rotate_manager_unlock_key
| * Add support for rotate_manager_unlock_keyHannes Ljungberg2019-05-011-0/+13
| | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
* | Merge pull request #2328 from docker/modernize_test_depsJoffrey F2019-05-013-28/+25
|\ \ | |/ |/| Update some test dependencies / default values with newer versions
| * Update some test dependencies / default values with newer versionsJoffrey F2019-05-013-28/+25
| | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | Merge pull request #2296 from hannseman/swarm-init-responseJoffrey F2019-05-011-1/+3
|\ \ | | | | | | Return node id on swarm init
| * | Return node id on swarm initHannes Ljungberg2019-05-011-1/+3
| | | | | | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
* | | Merge pull request #2303 from hannseman/swarm-DataPathAddrJoffrey F2019-05-012-0/+16
|\ \ \ | | | | | | | | Add support for swarm DataPathAddr
| * | | Add test for join on already joined swarmHannes Ljungberg2019-05-011-0/+12
| | | | | | | | | | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
| * | | Add swarm support for data_addr_pathHannes Ljungberg2019-05-011-0/+4
| |/ / | | | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
* | | Merge pull request #2222 from docker/vendor_dockerpycredsJoffrey F2019-05-014-0/+121
|\ \ \ | |_|/ |/| | Make dockerpycreds part of the SDK under docker.credentials
| * | Make dockerpycreds part of the SDK under docker.credentialsJoffrey F2019-04-304-0/+121
| | | | | | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | | Improve low_timeout test resilienceJoffrey F2019-05-011-4/+4
| | | | | | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | | Streaming TTY messages sometimes get truncated. Handle gracefully in demux testsdemux_test_fixesJoffrey F2019-05-011-4/+12
| |/ |/| | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | Increase timeout on test with long sleepsfix_socket_detach_helperJoffrey F2019-05-011-1/+1
| | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | Separate into individual testsfix_exec_demux_testsJoffrey F2019-05-011-63/+77
| | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | Avoid demux test flakinessJoffrey F2019-04-301-27/+21
| | | | | | | | Signed-off-by: Joffrey F <joffrey@docker.com>
* | Merge pull request #2309 from thaJeztah/remove_init_path_createJoffrey F2019-04-301-13/+0
|\ \ | |/ |/| Remove init_path from create
| * Remove init_path from createSebastiaan van Stijn2019-04-101-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | This option was never functional, and was not intended to be added to the "container create" API, so let's remove it, because it has been removed in Docker 17.05, and was broken in versions before that; see - https://github.com/moby/moby/issues/32355 --init-path does not seem to work - https://github.com/moby/moby/pull/32470 remove --init-path from client Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* | Merge pull request #2297 from hannseman/service-initJoffrey F2019-04-141-0/+14
|\ \ | |/ |/| Add support for setting init on services
| * Add support for setting init on servicesHannes Ljungberg2019-03-281-0/+14
| | | | | | | | Signed-off-by: Hannes Ljungberg <hannes@5monkeys.se>
* | Add 'sleep 2' to avoid race condition on attachUlysses Souza2019-04-041-5/+2
| | | | | | | | Signed-off-by: Ulysses Souza <ulysses.souza@docker.com>