Beispiel #1
0
 def setUp(self):
     self.fake_renderer = SEEDJSONRenderer()
     self.fake_response = mock.MagicMock()
     self.fake_view = View()
     self.fake_context = {
         'view': self.fake_view,
         'response': self.fake_response
     }
Beispiel #2
0
class TestSEEDJSONRenderer(TestCase):

    def setUp(self):
        self.fake_renderer = SEEDJSONRenderer()
        self.fake_response = mock.MagicMock()
        self.fake_view = View()
        self.fake_context = {
            'view': self.fake_view,
            'response': self.fake_response
        }

    def test_render(self):
        """Test SEEDJSONRender render method"""
        # success
        fake_data = {'fake': 'data'}
        self.fake_response.status_code = 200
        result = json.loads(self.fake_renderer.render(
            fake_data, renderer_context=self.fake_context
        ))
        self.assertIn('status', result.keys())
        self.assertIn('data', result.keys())
        self.assertEqual(result['status'], 'success')

        # success with data_name in view
        data_name = 'cycles'
        self.fake_view.data_name = data_name
        result = json.loads(self.fake_renderer.render(
            fake_data, renderer_context=self.fake_context
        ))
        self.assertNotIn('data', result.keys())
        self.assertIn(data_name, result.keys())

        # success with pagination
        fake_data_paginated = {
            "next": None,
            "previous": None,
            "results": fake_data,
        }
        result = json.loads(self.fake_renderer.render(
            fake_data_paginated, renderer_context=self.fake_context
        ))
        self.assertIn('pagination', result.keys())

        # error
        self.fake_response.status_code = 400
        result = json.loads(self.fake_renderer.render(
            fake_data, renderer_context=self.fake_context
        ))
        self.assertIn('status', result.keys())
        self.assertIn('message', result.keys())
        self.assertEqual(result['status'], 'error')