summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Fersing <pierre.fersing@bleemeo.com>2015-09-28 11:59:25 +0200
committerPierre Fersing <pierre.fersing@bleemeo.com>2015-09-28 11:59:25 +0200
commitc1577606bedbcfa4bde9ca153f4c6fe09b98674c (patch)
treeb56958749256f3fe89597c07d6d08e8cd8c09a9e
parent2d4a71df2e7500e409c3a71134d9c0a77bce5215 (diff)
downloaddocker-py-c1577606bedbcfa4bde9ca153f4c6fe09b98674c.tar.gz
Added test for "top" function
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
-rw-r--r--tests/fake_api.py29
-rw-r--r--tests/integration_test.py38
-rw-r--r--tests/test.py20
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 #
##################