diff options
author | Pierre Fersing <pierre.fersing@bleemeo.com> | 2015-09-28 11:59:25 +0200 |
---|---|---|
committer | Pierre Fersing <pierre.fersing@bleemeo.com> | 2015-09-28 11:59:25 +0200 |
commit | c1577606bedbcfa4bde9ca153f4c6fe09b98674c (patch) | |
tree | b56958749256f3fe89597c07d6d08e8cd8c09a9e | |
parent | 2d4a71df2e7500e409c3a71134d9c0a77bce5215 (diff) | |
download | docker-py-c1577606bedbcfa4bde9ca153f4c6fe09b98674c.tar.gz |
Added test for "top" function
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
-rw-r--r-- | tests/fake_api.py | 29 | ||||
-rw-r--r-- | tests/integration_test.py | 38 | ||||
-rw-r--r-- | tests/test.py | 20 |
3 files changed, 87 insertions, 0 deletions
diff --git a/tests/fake_api.py b/tests/fake_api.py index 5a89dee..214b197 100644 --- a/tests/fake_api.py +++ b/tests/fake_api.py @@ -383,6 +383,33 @@ def get_fake_stats(): return status_code, response +def get_fake_top(): + return 200, { + 'Processes': [ + [ + 'root', + '26501', + '6907', + '0', + '10:32', + 'pts/55', + '00:00:00', + 'sleep 60', + ], + ], + 'Titles': [ + 'UID', + 'PID', + 'PPID', + 'C', + 'STIME', + 'TTY', + 'TIME', + 'CMD', + ], + } + + def get_fake_volume_list(): status_code = 200 response = { @@ -462,6 +489,8 @@ fake_responses = { '{1}/{0}/containers/3cc2351ab11b/stats'.format(CURRENT_VERSION, prefix): get_fake_stats, + '{1}/{0}/containers/3cc2351ab11b/top'.format(CURRENT_VERSION, prefix): + get_fake_top, '{1}/{0}/containers/3cc2351ab11b/stop'.format(CURRENT_VERSION, prefix): post_fake_stop_container, '{1}/{0}/containers/3cc2351ab11b/kill'.format(CURRENT_VERSION, prefix): diff --git a/tests/integration_test.py b/tests/integration_test.py index 763c863..df3982b 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -786,6 +786,44 @@ class TestMacAddress(BaseTestCase): self.client.kill(id) +class TestContainerTop(BaseTestCase): + def runTest(self): + container = self.client.create_container( + BUSYBOX, ['sleep', '60']) + + id = container['Id'] + + self.client.start(container) + res = self.client.top(container['Id']) + print(res) + self.assertEqual( + res['Titles'], + ['UID', 'PID', 'PPID', 'C', 'STIME', 'TTY', 'TIME', 'CMD'] + ) + self.assertEqual(len(res['Processes']), 1) + self.assertEqual(res['Processes'][0][7], 'sleep 60') + self.client.kill(id) + + +class TestContainerTopWithPsArgs(BaseTestCase): + def runTest(self): + container = self.client.create_container( + BUSYBOX, ['sleep', '60']) + + id = container['Id'] + + self.client.start(container) + res = self.client.top(container['Id'], 'waux') + self.assertEqual( + res['Titles'], + ['USER', 'PID', '%CPU', '%MEM', 'VSZ', 'RSS', + 'TTY', 'STAT', 'START', 'TIME', 'COMMAND'], + ) + self.assertEqual(len(res['Processes']), 1) + self.assertEqual(res['Processes'][0][10], 'sleep 60') + self.client.kill(id) + + class TestRestart(BaseTestCase): def runTest(self): container = self.client.create_container(BUSYBOX, ['sleep', '9999']) diff --git a/tests/test.py b/tests/test.py index 8ed5c14..39b6479 100644 --- a/tests/test.py +++ b/tests/test.py @@ -1713,6 +1713,26 @@ class DockerClientTest(Cleanup, base.BaseTestCase): stream=True ) + def test_container_top(self): + self.client.top(fake_api.FAKE_CONTAINER_ID) + + fake_request.assert_called_with( + 'GET', + url_prefix + 'containers/3cc2351ab11b/top', + params={}, + timeout=DEFAULT_TIMEOUT_SECONDS + ) + + def test_container_top_with_psargs(self): + self.client.top(fake_api.FAKE_CONTAINER_ID, 'waux') + + fake_request.assert_called_with( + 'GET', + url_prefix + 'containers/3cc2351ab11b/top', + params={'ps_args': 'waux'}, + timeout=DEFAULT_TIMEOUT_SECONDS + ) + ################## # IMAGES TESTS # ################## |