Skip to content

Commit fa456d9

Browse files
authored
Fix docker integration tests (#1226)
Caused by a major upgrade of the docker-py client. Fix tests and pin the client in the image. Also, fix an unrelated flaky test.
1 parent 4aab93a commit fa456d9

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

.circleci/images/builder/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ RUN gem install bundler --version "$BUNDLER_VERSION"
7272

7373
RUN apt-get update && apt-get install -y python-pip \
7474
&& pip install invoke \
75-
&& pip install docker \
75+
&& pip install docker==3.0.1 \
7676
&& pip install reno \
7777
&& pip install requests
7878

pkg/util/kubernetes/kubelet/podwatcher_test.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,14 @@ func (suite *PodwatcherTestSuite) TestPodWatcherExpireWholePod() {
198198
// That one should expire, we'll have 8 entities left
199199
expire, err = watcher.Expire()
200200
require.Nil(suite.T(), err)
201-
require.EqualValues(suite.T(), expire, []string{
201+
expectedExpire := []string{
202202
"kubernetes_pod://d91aa43c-0769-11e8-afcc-000c29dea4f6",
203203
"docker://3e13513f94b41d23429804243820438fb9a214238bf2d4f384741a48b575670a",
204-
})
204+
}
205+
require.Equal(suite.T(), len(expectedExpire), len(expire))
206+
for _, expectedEntity := range expectedExpire {
207+
assert.Contains(suite.T(), expire, expectedEntity)
208+
}
205209
require.Len(suite.T(), watcher.lastSeen, 8)
206210
}
207211

tasks/docker.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def dockerize_test(ctx, binary, skip_cleanup=False):
5959
ctx.run("cp -R testdata %s" % temp_folder)
6060
stream.write("COPY testdata /testdata")
6161

62-
test_image = client.images.build(path=temp_folder, rm=True)
62+
test_image, _ = client.images.build(path=temp_folder, rm=True)
6363

6464
scratch_volume = client.volumes.create()
6565

@@ -76,7 +76,7 @@ def dockerize_test(ctx, binary, skip_cleanup=False):
7676
'/sys/fs/cgroup': {'bind': '/host/sys/fs/cgroup', 'mode': 'ro'},
7777
scratch_volume.name: {'bind': '/tmp/scratch', 'mode': 'rw'}})
7878

79-
exit_code = test_container.wait()
79+
exit_code = test_container.wait()['StatusCode']
8080

8181
print(test_container.logs(
8282
stdout=True,

test/integration/docker/dsd_listening.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,19 @@ def tearDownModule():
5353

5454
def waitUntilListening(container, retries=20):
5555
for x in range(0, retries):
56-
out = container.exec_run(cmd="netstat -a")
56+
out = container.exec_run(cmd="netstat -a").output
5757
if ":8125" in out or SOCKET_PATH in out:
5858
return True
5959
return False
6060

6161

6262
def isUDPListening(container):
63-
out = container.exec_run(cmd="netstat -a")
63+
out = container.exec_run(cmd="netstat -a").output
6464
return ":8125" in out
6565

6666

6767
def isUDSListening(container, retries=10):
68-
out = container.exec_run(cmd="netstat -a")
68+
out = container.exec_run(cmd="netstat -a").output
6969
return SOCKET_PATH in out
7070

7171

@@ -74,17 +74,17 @@ def setUp(self):
7474
self.assertIsNotNone(os.environ.get('DOCKER_IMAGE'), "DOCKER_IMAGE envvar needed")
7575

7676
def test_udp(self):
77-
waitUntilListening(containers["udp"])
77+
self.assertTrue(waitUntilListening(containers["udp"]))
7878
self.assertTrue(isUDPListening(containers["udp"]))
7979
self.assertFalse(isUDSListening(containers["udp"]))
8080

8181
def test_uds(self):
82-
waitUntilListening(containers["uds"])
82+
self.assertTrue(waitUntilListening(containers["uds"]))
8383
self.assertFalse(isUDPListening(containers["uds"]))
8484
self.assertTrue(isUDSListening(containers["uds"]))
8585

8686
def test_both(self):
87-
waitUntilListening(containers["both"])
87+
self.assertTrue(waitUntilListening(containers["both"]))
8888
self.assertTrue(isUDPListening(containers["both"]))
8989
self.assertTrue(isUDSListening(containers["both"]))
9090

0 commit comments

Comments
 (0)