|
@@ -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")) |