Merge pull request #283 from draftcode/default_category

DEFAULT_CATEGORY is ignored.
This commit is contained in:
Kyle Fuller 2012-03-27 16:00:31 -07:00
commit c71ad2babc
5 changed files with 43 additions and 3 deletions

View file

@ -219,9 +219,10 @@ class ArticlesGenerator(Generator):
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 @@ class ArticlesGenerator(Generator):
# 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 file

@ -0,0 +1,6 @@
This is an article with category !
##################################
:category: yeah
This article should be in 'yeah' category.

View file

@ -0,0 +1,4 @@
This is an article without category !
#####################################
This article should be in 'TestCategory' category.

View file

@ -0,0 +1,6 @@
This is an article without category !
#####################################
This article should be in the DEFAULT_CATEGORY.

View file

@ -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 @@ class TestArticlesGenerator(unittest.TestCase):
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 @@ class TestArticlesGenerator(unittest.TestCase):
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')