diff options
author | Joffrey F <joffrey@docker.com> | 2015-11-11 13:34:18 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2015-11-11 13:34:18 -0800 |
commit | 58aca47e0da0b1450eb1d0c3f6080bad08abe99e (patch) | |
tree | c9f3aee55fa8a0153fc17832dae326aa97fa9840 | |
parent | cefad9e23b4c8eb3e64b7ca35c0448b6bc2eb9a4 (diff) | |
download | docker-py-845-fix.tar.gz |
Client.logs(tail=0) now shows no past logs (expected behavior)845-fix
Add test confirming the new behavior.
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r-- | docker/api/container.py | 2 | ||||
-rw-r--r-- | tests/integration/container_test.py | 43 |
2 files changed, 29 insertions, 16 deletions
diff --git a/docker/api/container.py b/docker/api/container.py index 142bd0f..f3f85e8 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -192,7 +192,7 @@ class ContainerApiMixin(object): 'follow': stream and 1 or 0, } if utils.compare_version('1.13', self._version) >= 0: - if tail != 'all' and (not isinstance(tail, int) or tail <= 0): + if tail != 'all' and (not isinstance(tail, int) or tail < 0): tail = 'all' params['tail'] = tail url = self._url("/containers/{0}/logs", container) diff --git a/tests/integration/container_test.py b/tests/integration/container_test.py index 9606e14..58a12d9 100644 --- a/tests/integration/container_test.py +++ b/tests/integration/container_test.py @@ -632,24 +632,24 @@ Line2''' exitcode = self.client.wait(id) self.assertEqual(exitcode, 0) logs = self.client.logs(id, tail=1) - self.assertEqual(logs, ('Line2\n').encode(encoding='ascii')) + self.assertEqual(logs, 'Line2\n'.encode(encoding='ascii')) -# def test_logs_streaming(self): -# snippet = 'Flowering Nights (Sakuya Iyazoi)' -# container = self.client.create_container( -# BUSYBOX, 'echo {0}'.format(snippet) -# ) -# id = container['Id'] -# self.client.start(id) -# self.tmp_containers.append(id) -# logs = bytes() if six.PY3 else str() -# for chunk in self.client.logs(id, stream=True): -# logs += chunk + def test_logs_streaming(self): + snippet = 'Flowering Nights (Sakuya Iyazoi)' + container = self.client.create_container( + BUSYBOX, 'echo {0}'.format(snippet) + ) + id = container['Id'] + self.client.start(id) + self.tmp_containers.append(id) + logs = bytes() if six.PY3 else str() + for chunk in self.client.logs(id, stream=True): + logs += chunk -# exitcode = self.client.wait(id) -# self.assertEqual(exitcode, 0) + exitcode = self.client.wait(id) + self.assertEqual(exitcode, 0) -# self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii')) + self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii')) def test_logs_with_dict_instead_of_id(self): snippet = 'Flowering Nights (Sakuya Iyazoi)' @@ -664,6 +664,19 @@ Line2''' logs = self.client.logs(container) self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii')) + def test_logs_with_tail_0(self): + snippet = 'Flowering Nights (Sakuya Iyazoi)' + container = self.client.create_container( + BUSYBOX, 'echo "{0}"'.format(snippet) + ) + id = container['Id'] + self.client.start(id) + self.tmp_containers.append(id) + exitcode = self.client.wait(id) + self.assertEqual(exitcode, 0) + logs = self.client.logs(id, tail=0) + self.assertEqual(logs, ''.encode(encoding='ascii')) + class DiffTest(api_test.BaseTestCase): def test_diff(self): |