Skip to content

Commit

Permalink
test(navigation): refactor to use parametrize
Browse files Browse the repository at this point in the history
  • Loading branch information
ultrabug committed Aug 22, 2023
1 parent 224cbdb commit fb4bbf1
Showing 1 changed file with 29 additions and 137 deletions.
166 changes: 29 additions & 137 deletions tests/test_navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,12 @@
}


def test_plugin_static_nav():
mkdocs_config = load_config(
"tests/mkdocs.yml",
theme={"name": "mkdocs"},
docs_dir="docs_suffix_structure/",
use_directory_urls=True,
nav=[
{"Home": "index.md"},
{"Topic1": [{"Named File": "topic1/named_file.md"}]},
{"Topic2": "topic2/README.md"},
{"External": "https://ultrabug.fr"},
],
plugins={
"i18n": {
@pytest.mark.parametrize(
"plugin_config,use_directory_urls,control_data",
[
(
{
"docs_structure": "suffix",
"languages": [
{
"locale": "en",
Expand All @@ -60,39 +52,12 @@ def test_plugin_static_nav():
{"locale": "fr", "name": "français"},
],
},
},
)
i18n_plugin = mkdocs_config["plugins"]["i18n"]
for language in i18n_plugin.all_languages:
config = i18n_plugin.on_config(mkdocs_config)
#
i18n_plugin.current_language = language
#
files = get_files(config)
files = i18n_plugin.on_files(files, config)
nav = get_navigation(files, config)
nav = i18n_plugin.on_nav(nav, config, files)
assert len(mkdocs_config.nav) == len(nav.pages) + 1 # +1 for external link
for page in nav.pages:
assert page.title in STATIC_NAV_DIRECTORY_URLS[language]
assert page.abs_url == STATIC_NAV_DIRECTORY_URLS[language][page.title]
assert nav.homepage is not None


def test_plugin_static_nav_no_directory():
mkdocs_config = load_config(
"tests/mkdocs.yml",
theme={"name": "mkdocs"},
docs_dir="docs_suffix_structure/",
use_directory_urls=False,
nav=[
{"Home": "index.md"},
{"Topic1": [{"Named File": "topic1/named_file.md"}]},
{"Topic2": "topic2/README.md"},
{"External": "https://ultrabug.fr"},
],
plugins={
"i18n": {
True,
STATIC_NAV_DIRECTORY_URLS,
),
(
{
"docs_structure": "suffix",
"languages": [
{
"locale": "en",
Expand All @@ -102,39 +67,12 @@ def test_plugin_static_nav_no_directory():
{"locale": "fr", "name": "français"},
],
},
},
)
i18n_plugin = mkdocs_config["plugins"]["i18n"]
for language in i18n_plugin.all_languages:
config = i18n_plugin.on_config(mkdocs_config)
#
i18n_plugin.current_language = language
#
files = get_files(config)
files = i18n_plugin.on_files(files, config)
nav = get_navigation(files, config)
nav = i18n_plugin.on_nav(nav, config, files)
assert len(mkdocs_config.nav) == len(nav.pages) + 1 # +1 for external link
for page in nav.pages:
assert page.title in STATIC_NAV_NO_DIRECTORY_URLS[language]
assert page.abs_url == STATIC_NAV_NO_DIRECTORY_URLS[language][page.title]
assert nav.homepage is not None


def test_plugin_translated_nav():
mkdocs_config = load_config(
"tests/mkdocs.yml",
theme={"name": "mkdocs"},
docs_dir="docs_suffix_structure/",
use_directory_urls=True,
nav=[
{"Home": "index.md"},
{"Topic1": [{"Named File": "topic1/named_file.md"}]},
{"Topic2": "topic2/README.md"},
{"External": "https://ultrabug.fr"},
],
plugins={
"i18n": {
False,
STATIC_NAV_NO_DIRECTORY_URLS,
),
(
{
"docs_structure": "suffix",
"languages": [
{
"locale": "en",
Expand All @@ -155,39 +93,12 @@ def test_plugin_translated_nav():
},
],
},
},
)
i18n_plugin = mkdocs_config["plugins"]["i18n"]
for language in i18n_plugin.all_languages:
config = i18n_plugin.on_config(mkdocs_config)
#
i18n_plugin.current_language = language
#
files = get_files(config)
files = i18n_plugin.on_files(files, config)
nav = get_navigation(files, config)
nav = i18n_plugin.on_nav(nav, config, files)
assert len(mkdocs_config.nav) == len(nav.pages) + 1 # +1 for external link
for page in nav.pages:
assert page.title in TRANSLATED_NAV_DIRECTORY_URLS[language]
assert page.abs_url == TRANSLATED_NAV_DIRECTORY_URLS[language][page.title]
assert nav.homepage is not None


def test_plugin_translated_nav_no_directory():
mkdocs_config = load_config(
"tests/mkdocs.yml",
theme={"name": "mkdocs"},
docs_dir="docs_suffix_structure/",
use_directory_urls=False,
nav=[
{"Home": "index.md"},
{"Topic1": [{"Named File": "topic1/named_file.md"}]},
{"Topic2": "topic2/README.md"},
{"External": "https://ultrabug.fr"},
],
plugins={
"i18n": {
True,
TRANSLATED_NAV_DIRECTORY_URLS,
),
(
{
"docs_structure": "suffix",
"languages": [
{
"locale": "en",
Expand All @@ -208,28 +119,9 @@ def test_plugin_translated_nav_no_directory():
},
],
},
},
)
i18n_plugin = mkdocs_config["plugins"]["i18n"]
for language in i18n_plugin.all_languages:
config = i18n_plugin.on_config(mkdocs_config)
#
i18n_plugin.current_language = language
#
files = get_files(config)
files = i18n_plugin.on_files(files, config)
nav = get_navigation(files, config)
nav = i18n_plugin.on_nav(nav, config, files)
assert len(mkdocs_config.nav) == len(nav.pages) + 1 # +1 for external link
for page in nav.pages:
assert page.title in TRANSLATED_NAV_NO_DIRECTORY_URLS[language]
assert page.abs_url == TRANSLATED_NAV_NO_DIRECTORY_URLS[language][page.title]
assert nav.homepage is not None


@pytest.mark.parametrize(
"plugin_config,use_directory_urls,control_data",
[
False,
TRANSLATED_NAV_NO_DIRECTORY_URLS,
),
(
{
"docs_structure": "folder",
Expand Down Expand Up @@ -314,11 +206,11 @@ def test_plugin_translated_nav_no_directory():
),
],
)
def test_plugin_folder_navigation(plugin_config, use_directory_urls, control_data):
def test_plugin_navigation(plugin_config, use_directory_urls, control_data):
mkdocs_config = load_config(
"tests/mkdocs.yml",
theme={"name": "mkdocs"},
docs_dir="docs_folder_structure/",
docs_dir=f"docs_{plugin_config['docs_structure']}_structure/",
use_directory_urls=use_directory_urls,
nav=[
{"Home": "index.md"},
Expand Down

0 comments on commit fb4bbf1

Please sign in to comment.