Example #1
0
def test_util_error_cases(settings):
    'Test handling of missing settings'

    settings.PLOTLY_DASH = None

    from django_plotly_dash.util import pipe_ws_endpoint_name, dpd_http_endpoint_root, http_endpoint, insert_demo_migrations

    assert pipe_ws_endpoint_name() == 'dpd/ws/channel'
    assert dpd_http_endpoint_root() == "dpd/views"
    assert http_endpoint("fred") == '^dpd/views/fred/$'
    assert not insert_demo_migrations()

    del settings.PLOTLY_DASH

    assert pipe_ws_endpoint_name() == 'dpd/ws/channel'
    assert dpd_http_endpoint_root() == "dpd/views"
    assert http_endpoint("fred") == '^dpd/views/fred/$'
    assert not insert_demo_migrations()
Example #2
0
def test_demo_routing():
    'Test configuration options for the demo'

    from django_plotly_dash.util import pipe_ws_endpoint_name, insert_demo_migrations
    assert pipe_ws_endpoint_name() == 'ws/channel'
    assert insert_demo_migrations()
Example #3
0
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from channels.http import AsgiHandler

from django.conf.urls import url

from django_plotly_dash.consumers import MessageConsumer, PokePipeConsumer
from django_plotly_dash.util import pipe_ws_endpoint_name, http_endpoint, http_poke_endpoint_enabled

http_routes = []

if http_poke_endpoint_enabled():
    http_routes.append(url(http_endpoint("poke"), PokePipeConsumer))

http_routes.append(url("^", AsgiHandler))

application = ProtocolTypeRouter({
    'websocket':
    AuthMiddlewareStack(
        URLRouter([
            url(pipe_ws_endpoint_name(), MessageConsumer),
        ])),
    'http':
    AuthMiddlewareStack(URLRouter(http_routes)),
})
Example #4
0
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'''

# pylint: disable=too-many-arguments, unused-variable, unused-argument, possibly-unused-variable

from django import template

from django.contrib.sites.shortcuts import get_current_site

from django_plotly_dash.models import DashApp
from django_plotly_dash.util import pipe_ws_endpoint_name, store_initial_arguments

register = template.Library()

ws_default_url = "/%s" % pipe_ws_endpoint_name()


def _locate_daapp(name, slug, da, cache_id=None):

    app = None

    if name is not None:
        da, app = DashApp.locate_item(name, stateless=True, cache_id=cache_id)

    if slug is not None:
        da, app = DashApp.locate_item(slug, stateless=False, cache_id=cache_id)

    if not app:
        app = da.as_dash_instance()