Browse Source

Added template test for tag metadata. (Issue #53)

main
Lakshmi Vyasarajan 13 years ago
parent
commit
7bf887c5bc
1 changed files with 70 additions and 1 deletions
  1. +70
    -1
      hyde/tests/ext/test_tagger.py

+ 70
- 1
hyde/tests/ext/test_tagger.py View File

@@ -32,7 +32,7 @@ class TestTagger(object):
gen = Generator(self.s) gen = Generator(self.s)
gen.load_site_if_needed() gen.load_site_if_needed()
gen.generate_all() gen.generate_all()
assert hasattr(self.s, 'tagger') assert hasattr(self.s, 'tagger')
assert hasattr(self.s.tagger, 'tags') assert hasattr(self.s.tagger, 'tags')
assert self.s.tagger.tags assert self.s.tagger.tags
@@ -155,3 +155,72 @@ class TestTagger(object):
tag = getattr(tags, tagname) tag = getattr(tags, tagname)
assert tag assert tag
assert not hasattr(tag, "emotions") assert not hasattr(tag, "emotions")

def test_tagger_metadata(self):
conf = {
"tagger":{
"sorter": "time",
"archives": {
"blog": {
"template": "emotions.j2",
"source": "blog",
"target": "blog/tags",
"extension": "html"
}
},
"tags": {
"sad" : {
"emotions": ["Dissappointed", "Lost"]
},
"angry": {
"emotions": ["Irritated", "Annoyed", "Disgusted"]
}
}
}
}

text = """
<h1>Posts tagged: {{ tag }} in {{ node.name|title }}</h1>
Emotions:
<ul>
{% for emotion in tag.emotions %}
<li class="emotion">
{{ emotion }}
</li>'
{% endfor %}
<ul>
{% for resource in walker() -%}
<li>
<a href="{{ content_url(resource.url) }}">{{ resource.meta.title }}</a>
</li>
{%- endfor %}
</ul>
"""
template = File(TEST_SITE.child('layout/emotions.j2'))
template.write(text)
s = Site(TEST_SITE)
s.config.update(conf)
gen = Generator(s)
gen.load_site_if_needed()
gen.generate_all()

tags_folder = self.deploy.child_folder('blog/tags')
assert tags_folder.exists
tags = ['sad', 'happy', 'angry', 'thoughts', 'events']
archives = dict((tag, File(tags_folder.child("%s.html" % tag))) for tag in tags)

for tag, archive in archives.items():
assert archive.exists

from pyquery import PyQuery

q = PyQuery(archives['sad'].read_all())
assert len(q("li.emotion")) == 2

q = PyQuery(archives['angry'].read_all())
assert len(q("li.emotion")) == 3

for tag, archive in archives.items():
if tag not in ["sad", "angry"]:
q = PyQuery(archives[tag].read_all())
assert not len(q("li.emotion"))

Loading…
Cancel
Save