diff options
Diffstat (limited to 'ironicclient/tests')
-rw-r--r-- | ironicclient/tests/unit/common/test_utils.py | 13 | ||||
-rw-r--r-- | ironicclient/tests/unit/v1/test_node.py | 17 |
2 files changed, 30 insertions, 0 deletions
diff --git a/ironicclient/tests/unit/common/test_utils.py b/ironicclient/tests/unit/common/test_utils.py index a3c9972..c0ab067 100644 --- a/ironicclient/tests/unit/common/test_utils.py +++ b/ironicclient/tests/unit/common/test_utils.py @@ -413,3 +413,16 @@ class HandleJsonFileTest(test_utils.BaseTestCase): "from file", utils.handle_json_or_file_arg, f.name) mock_open.assert_called_once_with(f.name, 'r') + + +class GetJsonDataTest(test_utils.BaseTestCase): + + def test_success(self): + result = utils.get_json_data(b'\n{"answer": 42}') + self.assertEqual({"answer": 42}, result) + + def test_definitely_not_json(self): + self.assertIsNone(utils.get_json_data(b'0x010x020x03')) + + def test_could_be_json(self): + self.assertIsNone(utils.get_json_data(b'{"hahaha, just kidding\x00')) diff --git a/ironicclient/tests/unit/v1/test_node.py b/ironicclient/tests/unit/v1/test_node.py index 83808d5..7cdde36 100644 --- a/ironicclient/tests/unit/v1/test_node.py +++ b/ironicclient/tests/unit/v1/test_node.py @@ -1599,6 +1599,23 @@ class NodeManagerTest(testtools.TestCase): ] self.assertEqual(expect, self.api.calls) + def test_node_set_provision_state_with_configdrive_json_file(self): + target_state = 'active' + file_content = b'{"user_data": "foo bar"}' + + with tempfile.NamedTemporaryFile() as f: + f.write(file_content) + f.flush() + self.mgr.set_provision_state(NODE1['uuid'], target_state, + configdrive=f.name) + + body = {'target': target_state, + 'configdrive': {"user_data": "foo bar"}} + expect = [ + ('PUT', '/v1/nodes/%s/states/provision' % NODE1['uuid'], {}, body), + ] + self.assertEqual(expect, self.api.calls) + @mock.patch.object(common_utils, 'make_configdrive', autospec=True) def test_node_set_provision_state_with_configdrive_dir(self, mock_configdrive): |