Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ site_description: Test social cards support in RSS with blog plugin also enabled
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- blog:
- materialx/blog:
blog_dir: blog
- rss:
match_path: blog/posts/.*
pretty_print: true
- social:
- materialx/social:
enabled: true
cards: true

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
site_name: Test RSS Plugin with social cards, blog plugin and directory URL disabled
site_description: Test RSS with social and blog plugins enabled but directory URLS disabled. Related to https://github.com/Guts/mkdocs-rss-plugin/issues/319.
site_url: https://guts.github.io/mkdocs-rss-plugin

use_directory_urls: false

plugins:
- materialx/blog:
blog_dir: blog
authors_profiles: true
- rss:
match_path: blog/posts/.*
pretty_print: true
- materialx/social:
enabled: true
cards: true

theme:
name: materialx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
site_name: Test RSS Plugin
site_description: Test a language code set in with territory
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- rss
- materialx/social:
enabled: false
cards: true

theme:
name: materialx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
site_name: Test RSS Plugin
site_description: Test a language code set in with territory
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- rss:
use_material_social_cards: false
- materialx/social:
enabled: true
cards: true

theme:
name: materialx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
site_name: Test RSS Plugin
site_description: Test a language code set in with territory
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- rss
- materialx/social:
enabled: true
cards: true

theme:
name: materialx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
site_name: Test RSS Plugin
site_description: Test a language code set in with territory
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- rss
- materialx/social:
enabled: true
cards: false

theme:
name: materialx
12 changes: 12 additions & 0 deletions tests/fixtures/mkdocs_materialx_items_blog_enabled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
site_name: Test RSS Plugin
site_description: Test RSS with blog plugin also enabled
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- materialx/blog:
blog_dir: blog
authors_profiles: true
- rss

theme:
name: materialx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
site_name: Test RSS Plugin
site_description: Test RSS with blog plugin also enabled
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- materialx/blog:
blog_dir: blog
authors_profiles: true
- rss:
use_material_blog: false

theme:
name: materialx
11 changes: 11 additions & 0 deletions tests/fixtures/mkdocs_materialx_language_specific.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
site_name: Test RSS Plugin
site_description: Test a language code set in with territory
site_url: https://guts.github.io/mkdocs-rss-plugin

plugins:
- rss

theme:
name: materialx
locale: en_US
language: fr # custom setting for historical reason - see: https://github.com/squidfunk/mkdocs-material/discussions/6453
2 changes: 1 addition & 1 deletion tests/fixtures/test-build-material.dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Reference: https://squidfunk.github.io/mkdocs-material/getting-started/#with-docker
FROM squidfunk/mkdocs-material
FROM jaywhj/mkdocs-materialx

COPY . .

Expand Down
26 changes: 26 additions & 0 deletions tests/test_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,32 @@ def test_simple_build_language_specific_material(self):
feed_parsed = feedparser.parse(Path(tmpdirname) / OUTPUT_RSS_FEED_UPDATED)
self.assertEqual(feed_parsed.feed.get("language"), "fr")

def test_simple_build_language_specific_materialx(self):
with tempfile.TemporaryDirectory() as tmpdirname:
cli_result = self.build_docs_setup(
testproject_path="docs",
mkdocs_yml_filepath=Path(
"tests/fixtures/mkdocs_materialx_language_specific.yml"
),
output_path=tmpdirname,
strict=True,
)

if cli_result.exception is not None:
e = cli_result.exception
logger.debug(format_exception(type(e), e, e.__traceback__))

self.assertEqual(cli_result.exit_code, 0)
self.assertIsNone(cli_result.exception)

# created items
feed_parsed = feedparser.parse(Path(tmpdirname) / OUTPUT_RSS_FEED_CREATED)
self.assertEqual(feed_parsed.feed.get("language"), "fr")

# updated items
feed_parsed = feedparser.parse(Path(tmpdirname) / OUTPUT_RSS_FEED_UPDATED)
self.assertEqual(feed_parsed.feed.get("language"), "fr")

def test_simple_build_custom_output_basename(self):
config = self.get_plugin_config_from_mkdocs(
mkdocs_yml_filepath=Path(
Expand Down
12 changes: 12 additions & 0 deletions tests/test_integrations_material.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ def test_plugin_config_theme_material(self):
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)

def test_plugin_config_theme_materialx(self):
# default reference
cfg_mkdocs = load_config(
str(Path("tests/fixtures/mkdocs_materialx_language_specific.yml").resolve())
)

integration_social_cards = IntegrationMaterialThemeBase(
mkdocs_config=cfg_mkdocs
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertEqual(integration_social_cards.THEME_NAME, "materialx")

def test_plugin_config_theme_not_material(self):
# default reference
cfg_mkdocs = load_config(
Expand Down
57 changes: 57 additions & 0 deletions tests/test_integrations_material_blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,63 @@ def test_plugin_config_blog_enabled(self):
self.assertTrue(integration_social_cards.IS_BLOG_PLUGIN_ENABLED)
self.assertTrue(integration_social_cards.IS_ENABLED)

def test_plugin_config_materialx_blog_enabled_but_integration_disabled(self):
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_items_blog_enabled_but_integration_disabled.yml"
).resolve()
)
)

integration_blog = IntegrationMaterialBlog(
mkdocs_config=cfg_mkdocs,
switch_force=cfg_mkdocs.plugins.get("rss").config.use_material_blog,
)
self.assertTrue(integration_blog.IS_THEME_MATERIAL)
self.assertTrue(integration_blog.IS_BLOG_PLUGIN_ENABLED)
self.assertFalse(integration_blog.IS_ENABLED)

def test_plugin_config_materialx_blog_enabled(self):
# default reference
cfg_mkdocs = load_config(
str(
Path("tests/fixtures/mkdocs_materialx_items_blog_enabled.yml").resolve()
)
)

integration_blog = IntegrationMaterialBlog(mkdocs_config=cfg_mkdocs)
self.assertTrue(integration_blog.IS_THEME_MATERIAL)
self.assertTrue(integration_blog.IS_BLOG_PLUGIN_ENABLED)
self.assertTrue(integration_blog.IS_ENABLED)

def test_simple_build_materialx(self):
with tempfile.TemporaryDirectory() as tmpdirname:
cli_result = self.build_docs_setup(
testproject_path="docs",
mkdocs_yml_filepath=Path(
"tests/fixtures/mkdocs_materialx_items_blog_enabled.yml"
),
output_path=tmpdirname,
strict=False,
)

if cli_result.exception is not None:
e = cli_result.exception
logger.debug(format_exception(type(e), e, e.__traceback__))

self.assertEqual(cli_result.exit_code, 0)
self.assertIsNone(cli_result.exception)

# created items
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_created.xml")
self.assertEqual(feed_parsed.bozo, 0)

# updated items
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_updated.xml")
self.assertEqual(feed_parsed.bozo, 0)

def test_simple_build(self):
with tempfile.TemporaryDirectory() as tmpdirname:
cli_result = self.build_docs_setup(
Expand Down
124 changes: 124 additions & 0 deletions tests/test_integrations_material_social_cards.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,130 @@ def test_plugin_config_social_cards_enabled_with_directory_urls_disabled(self):
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_updated.xml")
self.assertEqual(feed_parsed.bozo, 0)

def test_plugin_config_materialx_social_cards_enabled_but_integration_disabled(
self,
):
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_item_image_social_cards_enabled_but_integration_disabled.yml"
).resolve()
)
)

integration_social_cards = IntegrationMaterialSocialCards(
mkdocs_config=cfg_mkdocs,
switch_force=cfg_mkdocs.plugins.get("rss").config.use_material_social_cards,
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_ENABLED)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_CARDS_ENABLED)
self.assertFalse(integration_social_cards.IS_ENABLED)

def test_plugin_config_materialx_social_cards_enabled(self):
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_item_image_social_cards_enabled_site.yml"
).resolve()
)
)

integration_social_cards = IntegrationMaterialSocialCards(
mkdocs_config=cfg_mkdocs
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_ENABLED)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_CARDS_ENABLED)
self.assertTrue(integration_social_cards.IS_ENABLED)

def test_plugin_config_materialx_social_cards_disabled(self):
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_item_image_social_cards_disabled_site.yml"
).resolve()
)
)

integration_social_cards = IntegrationMaterialSocialCards(
mkdocs_config=cfg_mkdocs
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertFalse(integration_social_cards.IS_SOCIAL_PLUGIN_ENABLED)
self.assertFalse(integration_social_cards.IS_SOCIAL_PLUGIN_CARDS_ENABLED)
self.assertFalse(integration_social_cards.IS_ENABLED)

def test_plugin_config_materialx_social_plugin_enabled_but_cards_disabled(self):
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_item_image_social_enabled_but_cards_disabled.yml"
).resolve()
)
)

integration_social_cards = IntegrationMaterialSocialCards(
mkdocs_config=cfg_mkdocs
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_ENABLED)
self.assertFalse(integration_social_cards.IS_SOCIAL_PLUGIN_CARDS_ENABLED)
self.assertFalse(integration_social_cards.IS_ENABLED)

def test_plugin_config_materialx_social_cards_enabled_with_directory_urls_disabled(
self,
):
"""Test case described in https://github.com/Guts/mkdocs-rss-plugin/issues/319."""
# default reference
cfg_mkdocs = load_config(
str(
Path(
"tests/fixtures/mkdocs_materialx_item_image_social_cards_blog_directory_url_disabled.yml"
).resolve()
)
)

integration_social_cards = IntegrationMaterialSocialCards(
mkdocs_config=cfg_mkdocs
)
self.assertTrue(integration_social_cards.IS_THEME_MATERIAL)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_ENABLED)
self.assertTrue(integration_social_cards.IS_SOCIAL_PLUGIN_CARDS_ENABLED)
self.assertIsInstance(integration_social_cards.social_cards_dir, str)

with tempfile.TemporaryDirectory(
prefix=f"{__title_clean__.lower()}_"
) as tmpdirname:
cli_result = self.build_docs_setup(
testproject_path="docs",
mkdocs_yml_filepath=Path(
"tests/fixtures/mkdocs_materialx_item_image_social_cards_blog_directory_url_disabled.yml"
),
output_path=tmpdirname,
strict=False,
)
if cli_result.exception is not None:
e = cli_result.exception
logger.debug(format_exception(type(e), e, e.__traceback__))

self.assertEqual(cli_result.exit_code, 0)
self.assertIsNone(cli_result.exception)

# created items
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_created.xml")
self.assertEqual(feed_parsed.bozo, 0)
for feed_item in feed_parsed.entries:
self.assertTrue(hasattr(feed_item, "enclosures"))

# updated items
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_updated.xml")
self.assertEqual(feed_parsed.bozo, 0)

def test_simple_build(self):
with tempfile.TemporaryDirectory() as tmpdirname:
cli_result = self.build_docs_setup(
Expand Down
Loading
Loading