Skip to content
Browse files

Merge pull request #283 from draftcode/default_category

DEFAULT_CATEGORY is ignored.
  • Loading branch information...
2 parents 0d92983 + cffb448 commit c71ad2babc7628e810f60142aa1bc8276b0a52ee @kylef kylef committed
View
5 pelican/generators.py
@@ -219,9 +219,10 @@ def generate_pages(self, writer):
def generate_context(self):
"""change the context"""
+ article_path = os.path.join(self.path, self.settings['ARTICLE_DIR'])
all_articles = []
for f in self.get_files(
- os.path.join(self.path, self.settings['ARTICLE_DIR']),
+ article_path,
exclude=self.settings['ARTICLE_EXCLUDES']):
try:
content, metadata = read_file(f, settings=self.settings)
@@ -232,7 +233,7 @@ def generate_context(self):
# if no category is set, use the name of the path as a category
if 'category' not in metadata:
- if os.path.dirname(f) == self.path:
+ if os.path.dirname(f) == article_path:
category = self.settings['DEFAULT_CATEGORY']
else:
category = os.path.basename(os.path.dirname(f))\
View
6 tests/content/TestCategory/article_with_category.rst
@@ -0,0 +1,6 @@
+This is an article with category !
+##################################
+
+:category: yeah
+
+This article should be in 'yeah' category.
View
4 tests/content/TestCategory/article_without_category.rst
@@ -0,0 +1,4 @@
+This is an article without category !
+#####################################
+
+This article should be in 'TestCategory' category.
View
6 tests/content/article_without_category.rst
@@ -0,0 +1,6 @@
+
+This is an article without category !
+#####################################
+
+This article should be in the DEFAULT_CATEGORY.
+
View
25 tests/test_generators.py
@@ -1,11 +1,13 @@
# -*- coding: utf-8 -*-
from mock import MagicMock
+import os
from pelican.generators import ArticlesGenerator
from pelican.settings import _DEFAULT_CONFIG
from .support import unittest
+CUR_DIR = os.path.dirname(__file__)
class TestArticlesGenerator(unittest.TestCase):
@@ -13,7 +15,7 @@ def test_generate_feeds(self):
generator = ArticlesGenerator(None, {'FEED': _DEFAULT_CONFIG['FEED']},
None, _DEFAULT_CONFIG['THEME'], None,
- None)
+ _DEFAULT_CONFIG['MARKUP'])
writer = MagicMock()
generator.generate_feeds(writer)
writer.write_feed.assert_called_with([], None, 'feeds/all.atom.xml')
@@ -23,3 +25,24 @@ def test_generate_feeds(self):
writer = MagicMock()
generator.generate_feeds(writer)
self.assertFalse(writer.write_feed.called)
+
+ def test_generate_context(self):
+
+ settings = _DEFAULT_CONFIG
+ settings['ARTICLE_DIR'] = 'content'
+ settings['DEFAULT_CATEGORY'] = 'Default'
+ generator = ArticlesGenerator(settings.copy(), settings, CUR_DIR,
+ _DEFAULT_CONFIG['THEME'], None,
+ _DEFAULT_CONFIG['MARKUP'])
+ generator.generate_context()
+ for article in generator.articles:
+ relfilepath = os.path.relpath(article.filename, CUR_DIR)
+ if relfilepath == os.path.join("TestCategory",
+ "article_with_category.rst"):
+ self.assertEquals(article.category.name, 'yeah')
+ elif relfilepath == os.path.join("TestCategory",
+ "article_without_category.rst"):
+ self.assertEquals(article.category.name, 'TestCategory')
+ elif relfilepath == "article_without_category.rst":
+ self.assertEquals(article.category.name, 'Default')
+

0 comments on commit c71ad2b

Please sign in to comment.
Something went wrong with that request. Please try again.