Skip to content

Commit

Permalink
Merge pull request getpelican#283 from draftcode/default_category
Browse files Browse the repository at this point in the history
DEFAULT_CATEGORY is ignored.
  • Loading branch information
kylef committed Mar 27, 2012
2 parents 0d92983 + cffb448 commit c71ad2b
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 3 deletions.
5 changes: 3 additions & 2 deletions pelican/generators.py
Expand Up @@ -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)
Expand All @@ -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))\
Expand Down
6 changes: 6 additions & 0 deletions 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.
4 changes: 4 additions & 0 deletions tests/content/TestCategory/article_without_category.rst
@@ -0,0 +1,4 @@
This is an article without category !
#####################################

This article should be in 'TestCategory' category.
6 changes: 6 additions & 0 deletions tests/content/article_without_category.rst
@@ -0,0 +1,6 @@

This is an article without category !
#####################################

This article should be in the DEFAULT_CATEGORY.

25 changes: 24 additions & 1 deletion tests/test_generators.py
@@ -1,19 +1,21 @@
# -*- 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):

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')
Expand All @@ -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.