~ltrager/maas/lp1554636_2.0

« back to all changes in this revision

Viewing changes to src/maasserver/api/tests/test_commissioning.py

Merge Blake's branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
 
8
8
from base64 import b64encode
9
9
import http.client
10
 
import json
11
10
 
12
11
from django.conf import settings
13
12
from django.core.urlresolvers import reverse
17
16
from maasserver.testing.factory import factory
18
17
from maasserver.testing.orm import reload_object
19
18
from maasserver.testing.testcase import MAASServerTestCase
 
19
from maasserver.utils.converters import json_load_bytes
20
20
from maastesting.utils import sample_binary_data
21
21
from metadataserver.models import CommissioningScript
22
22
 
76
76
                response.status_code,
77
77
                reload_object(node).status,
78
78
                [response_node['system_id']
79
 
                 for response_node in json.loads(response.content)],
 
79
                 for response_node in json_load_bytes(response.content)],
80
80
            ))
81
81
 
82
82
    def test_check_ignores_timezone_skew_between_python_and_database(self):
99
99
                response.status_code,
100
100
                [
101
101
                    response_node['system_id']
102
 
                    for response_node in json.loads(response.content)
 
102
                    for response_node in json_load_bytes(response.content)
103
103
                ],
104
104
            ))
105
105
        self.assertEqual(
129
129
 
130
130
        self.assertEqual(
131
131
            (http.client.OK, sorted(names)),
132
 
            (response.status_code, json.loads(response.content)))
 
132
            (response.status_code, json_load_bytes(response.content)))
133
133
 
134
134
    def test_POST_creates_commissioning_script(self):
135
135
        self.client_log_in(as_admin=True)
148
148
            })
149
149
        self.assertEqual(http.client.OK, response.status_code)
150
150
 
151
 
        returned_script = json.loads(response.content)
 
151
        returned_script = json_load_bytes(response.content)
152
152
        self.assertEqual(
153
153
            (name, b64encode(content).decode("ascii")),
154
154
            (returned_script['name'], returned_script['content']))
250
250
        response = self.client.get(url, {'op': 'list'})
251
251
        self.assertEqual(
252
252
            http.client.OK, response.status_code, response.content)
253
 
        parsed_results = json.loads(response.content)
 
253
        parsed_results = json_load_bytes(response.content)
254
254
        self.assertItemsEqual(
255
255
            [
256
256
                (
257
257
                    commissioning_result.name,
258
258
                    commissioning_result.script_result,
259
 
                    b64encode(commissioning_result.data),
 
259
                    b64encode(commissioning_result.data).decode("utf-8"),
260
260
                    commissioning_result.node.system_id,
261
261
                )
262
262
                for commissioning_result in commissioning_results
289
289
        )
290
290
        self.assertEqual(
291
291
            http.client.OK, response.status_code, response.content)
292
 
        parsed_results = json.loads(response.content)
 
292
        parsed_results = json_load_bytes(response.content)
293
293
        self.assertItemsEqual(
294
 
            [b64encode(commissioning_results[0].data),
295
 
             b64encode(commissioning_results[1].data)],
 
294
            [b64encode(commissioning_results[0].data).decode("utf-8"),
 
295
             b64encode(commissioning_results[1].data).decode("utf-8")],
296
296
            [result.get('data') for result in parsed_results])
297
297
 
298
298
    def test_list_can_be_filtered_by_name(self):
309
309
        )
310
310
        self.assertEqual(
311
311
            http.client.OK, response.status_code, response.content)
312
 
        parsed_results = json.loads(response.content)
 
312
        parsed_results = json_load_bytes(response.content)
313
313
        self.assertItemsEqual(
314
 
            [b64encode(commissioning_results[0].data)],
 
314
            [b64encode(commissioning_results[0].data).decode("utf-8")],
315
315
            [result.get('data') for result in parsed_results])
316
316
 
317
317
    def test_list_displays_only_visible_nodes(self):
321
321
        response = self.client.get(url, {'op': 'list'})
322
322
        self.assertEqual(
323
323
            http.client.OK, response.status_code, response.content)
324
 
        parsed_results = json.loads(response.content)
 
324
        parsed_results = json_load_bytes(response.content)
325
325
        self.assertEqual([], parsed_results)