[lxc-devel] [pylxd/master] Add more tests for container state
rockstar on Github
lxc-bot at linuxcontainers.org
Sat Jun 4 05:40:40 UTC 2016
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 678 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160604/cb13ac44/attachment.bin>
-------------- next part --------------
From 56e12087b014e7920fcef2f882b5bfa4a2fbb7a3 Mon Sep 17 00:00:00 2001
From: Paul Hummer <paul.hummer at canonical.com>
Date: Fri, 3 Jun 2016 23:33:09 -0600
Subject: [PATCH] Add more tests for container state
---
pylxd/container.py | 6 +++---
pylxd/tests/mock_lxd.py | 31 +++++++++++++++++++++++++++++++
pylxd/tests/test_container.py | 30 ++++++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 3 deletions(-)
diff --git a/pylxd/container.py b/pylxd/container.py
index 3408f52..3bb5a22 100644
--- a/pylxd/container.py
+++ b/pylxd/container.py
@@ -59,7 +59,7 @@ def get(self, filepath):
'_client',
'architecture', 'config', 'created_at', 'devices', 'ephemeral',
'expanded_config', 'expanded_devices', 'name', 'profiles', 'status'
- ]
+ ]
@classmethod
def get(cls, client, name):
@@ -164,7 +164,7 @@ def _set_state(self, state, timeout=30, force=True, wait=False):
'action': state,
'timeout': timeout,
'force': force
- })
+ })
if wait:
self.wait_for_operation(response.json()['operation'])
self.fetch()
@@ -253,7 +253,7 @@ def execute(self, commands, environment={}):
'environment': environment,
'wait-for-websocket': False,
'interactive': False,
- })
+ })
operation_id = response.json()['operation']
self.wait_for_operation(operation_id)
diff --git a/pylxd/tests/mock_lxd.py b/pylxd/tests/mock_lxd.py
index 38f4930..ed6d0e5 100644
--- a/pylxd/tests/mock_lxd.py
+++ b/pylxd/tests/mock_lxd.py
@@ -106,11 +106,42 @@ def profile_GET(request, context):
'metadata': {
'status': 'Running',
'status_code': 103,
+ 'disk': {
+ 'root': {
+ 'usage': 10,
+ }
+ },
+ 'memory': {
+ 'usage': 15,
+ 'usage_peak': 20,
+ 'swap_usage': 0,
+ 'swap_usage_peak': 5,
+ },
+ 'network': {
+ 'l0': {
+ 'addresses': [
+ {'family': 'inet',
+ 'address': '127.0.0.1',
+ 'netmask': '8',
+ 'scope': 'local'}
+ ],
+ }
+ },
+ 'pid': 69,
+ 'processes': 100,
}}),
'method': 'GET',
'url': r'^http://pylxd.test/1.0/containers/an-container/state$', # NOQA
},
{
+ 'status_code': 202,
+ 'json': {
+ 'type': 'async',
+ 'operation': 'operation-abc'},
+ 'method': 'PUT',
+ 'url': r'^http://pylxd.test/1.0/containers/an-container/state$', # NOQA
+ },
+ {
'text': json.dumps({
'type': 'sync', # This should be async
'operation': 'operation-abc'}),
diff --git a/pylxd/tests/test_container.py b/pylxd/tests/test_container.py
index 49b7c40..3b9d994 100644
--- a/pylxd/tests/test_container.py
+++ b/pylxd/tests/test_container.py
@@ -194,6 +194,36 @@ def test_get(self):
self.assertEqual('Running', state.status)
self.assertEqual(103, state.status_code)
+ def test_start(self):
+ """A container is started."""
+ an_container = container.Container.get(self.client, 'an-container')
+
+ an_container.start(wait=True)
+
+ def test_stop(self):
+ """A container is stopped."""
+ an_container = container.Container.get(self.client, 'an-container')
+
+ an_container.stop()
+
+ def test_restart(self):
+ """A container is restarted."""
+ an_container = container.Container.get(self.client, 'an-container')
+
+ an_container.restart()
+
+ def test_freeze(self):
+ """A container is suspended."""
+ an_container = container.Container.get(self.client, 'an-container')
+
+ an_container.freeze()
+
+ def test_unfreeze(self):
+ """A container is resumed."""
+ an_container = container.Container.get(self.client, 'an-container')
+
+ an_container.unfreeze()
+
class TestContainerSnapshots(testing.PyLXDTestCase):
"""Tests for pylxd.container.Container.snapshots."""
More information about the lxc-devel
mailing list