Ejemplo n.º 1
0
def test_legacy_resources():
    r = resources.Resources(minified=True, legacy=True)
    assert [basename(f) for f in r._file_paths("js")] == [
        "bokeh.legacy.min.js",
        "bokeh-widgets.legacy.min.js",
        "bokeh-tables.legacy.min.js",
    ]

    r = resources.Resources(minified=True, legacy=False)
    assert [basename(f) for f in r._file_paths("js")] == [
        "bokeh.min.js",
        "bokeh-widgets.min.js",
        "bokeh-tables.min.js",
    ]

    r = resources.Resources(minified=False, legacy=True)
    assert [basename(f) for f in r._file_paths("js")] == [
        "bokeh.legacy.js",
        "bokeh-widgets.legacy.js",
        "bokeh-tables.legacy.js",
    ]

    r = resources.Resources(minified=False, legacy=False)
    assert [basename(f) for f in r._file_paths("js")] == [
        "bokeh.js",
        "bokeh-widgets.js",
        "bokeh-tables.js",
    ]
Ejemplo n.º 2
0
    def test_js_wrapper(self):
        for mode in ("inline", "server", "cdn", "relative", "absolute"):
            r = resources.Resources(mode)
            self.assertEqual(r.js_wrapper("foo"), WRAPPER)

        for mode in ("server-dev", "relative-dev", "absolute-dev"):
            r = resources.Resources(mode)
            self.assertEqual(r.js_wrapper("foo"), WRAPPER_DEV)
Ejemplo n.º 3
0
    def test_server_dev(self):
        r = resources.Resources(mode="server-dev")
        self.assertEqual(r.mode, "server")
        self.assertEqual(r.dev, True)

        self.assertEqual(len(r.js_raw), 1)
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])

        r = resources.Resources(mode="server-dev", root_url="http://foo/")

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 4
0
    def test_server(self):
        r = resources.Resources(mode="server")
        self.assertEqual(r.mode, "server")
        self.assertEqual(r.dev, False)

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])

        r = resources.Resources(mode="server", root_url="http://foo/")

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 5
0
    def test_server_dev(self) -> None:
        r = resources.Resources(mode="server-dev")
        assert r.mode == "server"
        assert r.dev == True

        assert len(r.js_raw) == 2
        assert r.css_raw == []
        assert r.messages == []

        r = resources.Resources(mode="server-dev", root_url="http://foo/")

        assert r.js_raw == [DEFAULT_LOG_JS_RAW, "Bokeh.settings.dev = true"]
        assert r.css_raw == []
        assert r.messages == []
Ejemplo n.º 6
0
    def test_argument_checks(self):
        with pytest.raises(ValueError):
            resources.Resources("foo")

        for mode in ("inline", "cdn", "server", "server-dev", "absolute", "absolute-dev"):
            with pytest.raises(ValueError):
                resources.Resources(mode, root_dir="foo")

        for mode in ("inline", "server", "server-dev", "relative", "relative-dev", "absolute", "absolute-dev"):
            with pytest.raises(ValueError):
                resources.Resources(mode, version="foo")

        for mode in ("inline", "cdn", "relative", "relative-dev", "absolute", "absolute-dev"):
            with pytest.raises(ValueError):
                resources.Resources(mode, root_url="foo")
Ejemplo n.º 7
0
    def test_cdn(self):
        resources.__version__ = "1.0"
        r = resources.Resources(mode="cdn", version="1.0")
        self.assertEqual(r.mode, "cdn")
        self.assertEqual(r.dev, False)

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])

        resources.__version__ = "1.0-1-abc"
        r = resources.Resources(mode="cdn", version="1.0")
        self.assertEqual(r.messages, [
            {'text': "Requesting CDN BokehJS version '1.0' from Bokeh development version '1.0-1-abc'. This configuration is unsupported and may not work!",
            'type': 'warn'}
        ])
Ejemplo n.º 8
0
    def test_cdn(self):
        resources.__version__ = "1.0"
        r = resources.Resources(mode="cdn", version="1.0")
        assert r.mode == "cdn"
        assert r.dev == False

        assert r.js_raw == [DEFAULT_LOG_JS_RAW]
        assert r.css_raw == []
        assert r.messages == []

        resources.__version__ = "1.0-1-abc"
        r = resources.Resources(mode="cdn", version="1.0")
        assert r.messages == [{
            'text': "Requesting CDN BokehJS version '1.0' from Bokeh development version '1.0-1-abc'. This configuration is unsupported and may not work!",
            'type': 'warn'}
        ]
Ejemplo n.º 9
0
def test_external_js_and_css_resource_embedding() -> None:
    """ This test method has to be at the end of the test modules because
    subclassing a Model causes the CustomModel to be added as a Model and
    messes up the Resources state for the other tests.
    """

    # External resources can be defined as a string or list of strings
    class CustomModel1(Model):
        __javascript__ = "external_js_1"
        __css__ = "external_css_1"

    class CustomModel2(Model):
        __javascript__ = ["external_js_2", "external_js_3"]
        __css__ = ["external_css_2", "external_css_3"]

    class CustomModel3(Model):
        __javascript__ = ["external_js_1", "external_js_3"]
        __css__ = ["external_css_1", "external_css_2"]

    r = resources.Resources()

    assert "external_js_1" in r.js_files
    assert "external_css_1" in r.css_files

    assert "external_js_2" in r.js_files
    assert "external_js_3" in r.js_files
    assert "external_css_2" in r.css_files
    assert "external_css_3" in r.css_files

    # Deduplication should keep the first instance of every file
    assert r.css_files.count("external_css_1") == 1
    assert r.css_files.count("external_css_2") == 1
    assert r.js_files.count("external_js_3") == 1
    assert r.js_files.count("external_js_1") == 1
Ejemplo n.º 10
0
    def test_relative(self):
        r = resources.Resources(mode="relative")
        self.assertEqual(r.mode, "relative")
        self.assertEqual(r.dev, False)

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 11
0
 def test_log_level(self):
     r = resources.Resources()
     for level in LOG_LEVELS:
         r.log_level = level
         self.assertEqual(r.log_level, level)
         if not r.dev:
             self.assertEqual(r.js_raw[-1], 'Bokeh.set_log_level("%s");' % level)
     self.assertRaises(ValueError, setattr, r, "log_level", "foo")
Ejemplo n.º 12
0
    def test_relative_dev(self):
        r = resources.Resources(mode="relative-dev")
        self.assertEqual(r.mode, "relative")
        self.assertEqual(r.dev, True)

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW, "Bokeh.settings.dev = true"])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 13
0
    def test_absolute(self):
        r = resources.Resources(mode="absolute")
        self.assertEqual(r.mode, "absolute")
        self.assertEqual(r.dev, False)

        self.assertEqual(r.js_raw, [DEFAULT_JOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 14
0
    def test_absolute_dev(self):
        r = resources.Resources(mode="absolute-dev")
        self.assertEqual(r.mode, "absolute")
        self.assertEqual(r.dev, True)

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 15
0
    def test_relative_dev(self):
        r = resources.Resources(mode="relative-dev")
        self.assertEqual(r.mode, "relative")
        self.assertEqual(r.dev, True)

        self.assertEqual(r.js_raw, [DEFAULT_JOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 16
0
    def test_absolute(self) -> None:
        r = resources.Resources(mode="absolute")
        assert r.mode == "absolute"
        assert r.dev == False

        assert r.js_raw == [DEFAULT_LOG_JS_RAW]
        assert r.css_raw == []
        assert r.messages == []
Ejemplo n.º 17
0
    def test_absolute_dev(self) -> None:
        r = resources.Resources(mode="absolute-dev")
        assert r.mode == "absolute"
        assert r.dev == True

        assert r.js_raw == [DEFAULT_LOG_JS_RAW, "Bokeh.settings.dev = true"]
        assert r.css_raw == []
        assert r.messages == []
Ejemplo n.º 18
0
    def test_relative(self):
        r = resources.Resources(mode="relative")
        assert r.mode == "relative"
        assert r.dev == False

        assert r.js_raw == [DEFAULT_LOG_JS_RAW]
        assert r.css_raw == []
        assert r.messages == []
Ejemplo n.º 19
0
    def test_relative_dev(self):
        r = resources.Resources(mode="relative-dev")
        assert r.mode == "relative"
        assert r.dev == True

        assert r.js_raw == [DEFAULT_LOG_JS_RAW, "Bokeh.settings.dev = true"]
        assert r.css_raw == []
        assert r.messages == []
Ejemplo n.º 20
0
    def test_cdn(self, monkeypatch) -> None:
        monkeypatch.setattr(resources, "__version__", "1.0")
        r = resources.Resources(mode="cdn", version="1.0")
        assert r.mode == "cdn"
        assert r.dev == False

        assert r.js_raw == [DEFAULT_LOG_JS_RAW]
        assert r.css_raw == []
        assert r.messages == []

        resources.__version__ = "1.0-1-abc"
        r = resources.Resources(mode="cdn", version="1.0")
        assert r.messages == [{
            "text":
            "Requesting CDN BokehJS version '1.0' from Bokeh development version '1.0-1-abc'. This configuration is unsupported and may not work!",
            "type": "warn",
        }]
Ejemplo n.º 21
0
    def test_inline(self):
        r = resources.Resources(mode="inline")
        self.assertEqual(r.mode, "inline")
        self.assertEqual(r.dev, False)

        self.assertEqual(len(r.js_raw), 3)
        self.assertEqual(r.js_raw[-1], DEFAULT_LOG_JS_RAW)
        self.assertEqual(len(r.css_raw), 2)
        self.assertEqual(r.messages, [])
Ejemplo n.º 22
0
    def test_inline(self) -> None:
        r = resources.Resources(mode="inline")
        assert r.mode == "inline"
        assert r.dev == False

        assert len(r.js_raw) == 4
        assert r.js_raw[-1] == DEFAULT_LOG_JS_RAW
        assert len(r.css_raw) == 0
        assert r.messages == []
Ejemplo n.º 23
0
 def test_log_level(self) -> None:
     r = resources.Resources()
     for level in LOG_LEVELS:
         r.log_level = level
         assert r.log_level == level
         if not r.dev:
             assert r.js_raw[-1] == 'Bokeh.set_log_level("%s");' % level
     with pytest.raises(ValueError):
         setattr(r, "log_level", "foo")
Ejemplo n.º 24
0
    def test_server_dev(self):
        r = resources.Resources(mode="server-dev")
        self.assertEqual(r.mode, "server")
        self.assertEqual(r.dev, True)

        self.assertEqual(len(r.js_raw), 1)
        self.assertTrue(r.js_raw[0].startswith('require.config({ baseUrl:'))
        self.assertTrue(r.js_raw[0].endswith(join('static', 'js') + '" });'))
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])

        r = resources.Resources(mode="server-dev", root_url="http://foo/")

        self.assertEqual(len(r.js_raw), 1)
        self.assertTrue(r.js_raw[0].startswith('require.config({ baseUrl:'))
        self.assertTrue(r.js_raw[0].endswith(join('static', 'js') + '" });'))
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 25
0
    def test_server_root_url_empty(self):
        r = resources.Resources(mode="server", root_url="")

        self.assertEqual(r.js_raw, [DEFAULT_LOG_JS_RAW])
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
        self.assertEqual(r.js_files, ['static/js/bokeh.min.js',
                                      'static/js/bokeh-widgets.min.js'])
        self.assertEqual(r.css_files, ['static/css/bokeh.min.css',
                                       'static/css/bokeh-widgets.min.css'])
Ejemplo n.º 26
0
    def test_absolute_dev(self):
        r = resources.Resources(mode="absolute-dev")
        self.assertEqual(r.mode, "absolute")
        self.assertEqual(r.dev, True)

        self.assertEqual(len(r.js_raw), 1)
        self.assertTrue(r.js_raw[0].startswith('require.config({ baseUrl:'))
        self.assertTrue(r.js_raw[0].endswith(join('static', 'js') + '" });'))
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])
Ejemplo n.º 27
0
    def test_server_with_versioner(self):
        def versioner(path):
            return path + "?v=VERSIONED"

        r = resources.Resources(mode="server", root_url="http://foo/",
                                path_versioner=versioner)

        self.assertEqual(r.js_files, ['http://foo/static/js/bokeh.min.js?v=VERSIONED',
                                      'http://foo/static/js/bokeh-widgets.min.js?v=VERSIONED'])
        self.assertEqual(r.css_files, ['http://foo/static/css/bokeh.min.css?v=VERSIONED',
                                       'http://foo/static/css/bokeh-widgets.min.css?v=VERSIONED'])
Ejemplo n.º 28
0
    def test_server_with_versioner(self):
        def versioner(path):
            return path + "?v=VERSIONED"

        r = resources.Resources(mode="server", root_url="http://foo/",
                                path_versioner=versioner)

        assert r.js_files == ['http://foo/static/js/bokeh.min.js?v=VERSIONED',
                              'http://foo/static/js/bokeh-widgets.min.js?v=VERSIONED',
                              'http://foo/static/js/bokeh-tables.min.js?v=VERSIONED',
                              'http://foo/static/js/bokeh-gl.min.js?v=VERSIONED']
Ejemplo n.º 29
0
    def test_server_root_url_empty(self):
        r = resources.Resources(mode="server", root_url="")

        assert r.js_raw == [DEFAULT_LOG_JS_RAW]
        assert r.css_raw == []
        assert r.messages == []

        assert r.js_files == ['static/js/bokeh.min.js',
                              'static/js/bokeh-widgets.min.js',
                              'static/js/bokeh-tables.min.js',
                              'static/js/bokeh-gl.min.js']
Ejemplo n.º 30
0
    def test_relative_dev(self):
        r = resources.Resources(mode="relative-dev")
        self.assertEqual(r.mode, "relative")
        self.assertEqual(r.dev, True)

        self.assertEqual(len(r.js_raw), 1)
        self.assertTrue(r.js_raw[0].startswith('require.config({ baseUrl:'))
        self.assertTrue(
            r.js_raw[0].endswith(join('bokehjs', 'build', 'js') + '" });'))
        self.assertEqual(r.css_raw, [])
        self.assertEqual(r.messages, [])