Skip to content

Commit

Permalink
Change default use_param=None and value of False now disables Pages e…
Browse files Browse the repository at this point in the history
…ven when pages_folder has custom value
  • Loading branch information
ned2 committed Mar 12, 2023
1 parent 03271db commit 11dbf86
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
11 changes: 6 additions & 5 deletions dash/dash.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,10 @@ class Dash:
for pages of a multi-page app. Default ``'pages'``.
:type pages_folder: string
:param use_pages: Default False, or True if you set a non-default ``pages_folder``.
When True, the ``pages`` feature for multi-page apps is enabled.
:type pages: boolean
:param use_pages: When True, the ``pages`` feature for multi-page apps is
enabled. If you set a non-default ``pages_folder`` this will be inferred
to be True. Default `None`.
:type use_pages: boolean
:param assets_url_path: The local urls for assets will be:
``requests_pathname_prefix + assets_url_path + '/' + asset_path``
Expand Down Expand Up @@ -341,7 +342,7 @@ def __init__( # pylint: disable=too-many-statements
server=True,
assets_folder="assets",
pages_folder="pages",
use_pages=False,
use_pages=None,
assets_url_path="assets",
assets_ignore="",
assets_external_path=None,
Expand Down Expand Up @@ -439,7 +440,7 @@ def __init__( # pylint: disable=too-many-statements
_pages.CONFIG = self.config

self.pages_folder = str(pages_folder)
self.use_pages = True if pages_folder != "pages" else use_pages
self.use_pages = (pages_folder != "pages") if use_pages is None else use_pages

# keep title as a class property for backwards compatibility
self.title = title
Expand Down
29 changes: 19 additions & 10 deletions tests/unit/pages/test_pages_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,26 @@ def test_pages_missing_path_config(empty_environ, pages_folder, use_pages, expec


@pytest.mark.parametrize(
"pages_folder",
"use_pages, pages_folder",
[
"custom_pages",
Path("custom_pages"),
str(THIS_DIR / "custom_pages"),
THIS_DIR / "custom_pages",
str(THIS_DIR / "sub_dir" / "custom_pages"),
THIS_DIR / "sub_dir" / "custom_pages",
(True, "custom_pages"),
(True, Path("custom_pages")),
(True, str(THIS_DIR / "custom_pages")),
(True, THIS_DIR / "custom_pages"),
(True, str(THIS_DIR / "sub_dir" / "custom_pages")),
(True, THIS_DIR / "sub_dir" / "custom_pages"),
(None, "custom_pages"),
(None, "pages"),
(False, "custom_pages"),
],
)
def test_pages_folder_app_config(empty_environ, clear_pages_state, pages_folder):
app = Dash(__name__, pages_folder=pages_folder)
assert app.use_pages
def test_pages_folder_app_config(
empty_environ, clear_pages_state, use_pages, pages_folder
):
app = Dash(__name__, use_pages=use_pages, pages_folder=pages_folder)
if use_pages is None:
expected_use_pages = bool(pages_folder != "pages")
elif use_pages in (True, False):
expected_use_pages = use_pages
assert app.use_pages == expected_use_pages
assert app.pages_folder == str(pages_folder)

0 comments on commit 11dbf86

Please # to comment.