Esempio n. 1
0
 def test_plugin_should_send_request_any_false(self, mock_post):
     renderer = hypernova.Renderer('http://localhost', [
         plugins.PluginShouldSendRequestTrue(), 
         plugins.PluginShouldSendRequestFalse()
     ])
     html = renderer.render({'component': {}})
     self.assertFalse(mock_post.called)
Esempio n. 2
0
 def test_plugin_will_send_request_false(self, mock_plugin, mock_post):
     renderer = hypernova.Renderer('http://localhost', [
         plugins.PluginShouldSendRequestFalse(), 
         plugins.PluginWillSendRequest()
     ])
     renderer.render({'component': {}})
     self.assertFalse(mock_plugin.called)
Esempio n. 3
0
 def test_plugin_prepare_request(self, mock_post):
     to_append = {"extra": 1}
     renderer = hypernova.Renderer(
         "http://localhost",
         [plugins.PluginPrepareRequest("component", to_append)])
     renderer.render({"component": {}})
     component_data = mock_post.call_args[1]["json"]["component"]
     self.assertEqual(component_data.get("extra"), to_append.get("extra"))
Esempio n. 4
0
 def test_plugin_prepare_request(self, mock_post):
     to_append = {'extra': 1}
     renderer = hypernova.Renderer('http://localhost', [
         plugins.PluginPrepareRequest('component', to_append)
     ])
     html = renderer.render({'component': {}})
     component_data = mock_post.call_args[1]['json']['component']
     self.assertEqual(component_data.get('extra'), to_append.get('extra'))
Esempio n. 5
0
 def test_plugin_get_view_data(self, mock_post):
     expected_data = {'foo': 'bar'}
     renderer = hypernova.Renderer('http://localhost', [
         plugins.PluginGetViewData('component', expected_data)
     ])
     html = renderer.render({'component': {}})
     data = mock_post.call_args[1]['json']['component']['data']
     self.assertEqual(data, expected_data)
     self.assertEqual(html, '<p>{}</p>'.format(json.dumps(expected_data)))
Esempio n. 6
0
 def test_plugin_get_view_data(self, mock_post):
     expected_data = {"foo": "bar"}
     renderer = hypernova.Renderer(
         "http://localhost",
         [plugins.PluginGetViewData("component", expected_data)])
     html = renderer.render({"component": {}})
     data = mock_post.call_args[1]["json"]["component"]["data"]
     self.assertEqual(data, expected_data)
     self.assertEqual(html, "<p>{}</p>".format(json.dumps(expected_data)))
Esempio n. 7
0
 def test_plugin_will_send_request(self, mock_plugin, mock_post):
     renderer = hypernova.Renderer(
         "http://localhost",
         [
             plugins.PluginShouldSendRequestTrue(),
             plugins.PluginWillSendRequest()
         ],
     )
     renderer.render({"component": {}})
     self.assertTrue(mock_plugin.called)
Esempio n. 8
0
    def load_or_empty(self, component, headers={}, ssr_context=None):
        # from hypernova.plugins.dev_mode import DevModePlugin

        renderer = hypernova.Renderer(
            settings.REACT_RENDER_HOST,
            # [DevModePlugin(logger)] if settings.DEBUG else [],
            [],
            timeout=get_request_timeout(),
            headers=headers,
        )

        inner_html = ""
        try:
            props = component["json_obj"]
            if ssr_context:
                props["context"] = ssr_context
            inner_html = renderer.render({component["name"]: props})
        except Exception as e:
            msg = "SSR request to '{}' failed: {}".format(
                settings.REACT_RENDER_HOST, e.__class__.__name__)
            logger.exception(msg)

        if not inner_html:
            return {"html": "", "params": {}}

        match = re.search(hypernova_id_re, inner_html)
        hypernova_id = match.group(1) if match else None

        match = re.search(hypernova_key_re, inner_html)
        hypernova_key = match.group(1) if match else None

        return {
            "html": inner_html,
            "params": {
                "hypernova_id": hypernova_id,
                "hypernova_key": hypernova_key,
            },
        }
Esempio n. 9
0
 def test_plugin_on_error_component(self, mock_plugin, mock_post):
     renderer = hypernova.Renderer('http://localhost', [
         plugins.PluginOnError()
     ])
     renderer.render({'component': {}})
     self.assertEqual(1, mock_plugin.call_count)
Esempio n. 10
0
 def test_plugin_should_send_request_false(self, mock_post):
     renderer = hypernova.Renderer("http://localhost",
                                   [plugins.PluginShouldSendRequestFalse()])
     renderer.render({"component": {}})
     self.assertFalse(mock_post.called)
Esempio n. 11
0
 def test_no_plugins(self, mock_post):
     renderer = hypernova.Renderer('http://localhost')
     html = renderer.render({'component': {'foo': 'bar'}})
     self.assertEqual(html, '<p>{}</p>'.format(json.dumps({'foo': 'bar'})))
Esempio n. 12
0
 def test_plugin_get_view_data_no_return(self, mock_post):
     renderer = hypernova.Renderer("http://localhost",
                                   [plugins.PluginGetViewDataDoNothing()])
     html = renderer.render({"component": {"foo": "bar"}})
     self.assertEqual(html, "<p>{}</p>".format(json.dumps({"foo": "bar"})))
Esempio n. 13
0
 def test_no_plugins(self, mock_post):
     renderer = hypernova.Renderer("http://localhost")
     html = renderer.render({"component": {"foo": "bar"}})
     self.assertEqual(html, "<p>{}</p>".format(json.dumps({"foo": "bar"})))
Esempio n. 14
0
 def test_request_fail(self, mock_post):
     renderer = hypernova.Renderer("http://localhost")
     html = renderer.render({"component": {"foo": "bar"}})
     self.assertIsInstance(html, str)
Esempio n. 15
0
 def test_plugin_on_error_response(self, mock_plugin, mock_post):
     renderer = hypernova.Renderer("http://localhost",
                                   [plugins.PluginOnError()])
     renderer.render({"component": {}})
     self.assertEqual(1, mock_plugin.call_count)
Esempio n. 16
0
 def test_request_fail(self, mock_post):
     renderer = hypernova.Renderer('http://localhost')
     html = renderer.render({'component': {'foo': 'bar'}})
     self.assertIsInstance(html, str)    
Esempio n. 17
0
 def test_plugin_get_view_data_no_return(self, mock_post):
     renderer = hypernova.Renderer(
         'http://localhost', [plugins.PluginGetViewDataDoNothing()]
     )
     html = renderer.render({'component': {'foo': 'bar'}})
     self.assertEqual(html, '<p>{}</p>'.format(json.dumps({'foo': 'bar'})))