forked from github/pelican
improve URLWrapper comparison
* speed up via reduced slugify calls (only call when needed) * fix __repr__ to not contain str, should call repr on name * add test_urlwrappers and move URLWrappers tests there * add new equality test * cleanup header additionally: * Content is now decorated with python_2_unicode_compatible instead of treating __str__ differently * better formatting for test_article_metadata_key_lowercase to actually output the conflict instead of a non descriptive error
This commit is contained in:
parent
3f69a1fb62
commit
5389543a39
5 changed files with 80 additions and 48 deletions
51
pelican/tests/test_urlwrappers.py
Normal file
51
pelican/tests/test_urlwrappers.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from pelican.urlwrappers import URLWrapper, Tag, Category
|
||||
from pelican.tests.support import unittest
|
||||
|
||||
class TestURLWrapper(unittest.TestCase):
|
||||
def test_ordering(self):
|
||||
# URLWrappers are sorted by name
|
||||
wrapper_a = URLWrapper(name='first', settings={})
|
||||
wrapper_b = URLWrapper(name='last', settings={})
|
||||
self.assertFalse(wrapper_a > wrapper_b)
|
||||
self.assertFalse(wrapper_a >= wrapper_b)
|
||||
self.assertFalse(wrapper_a == wrapper_b)
|
||||
self.assertTrue(wrapper_a != wrapper_b)
|
||||
self.assertTrue(wrapper_a <= wrapper_b)
|
||||
self.assertTrue(wrapper_a < wrapper_b)
|
||||
wrapper_b.name = 'first'
|
||||
self.assertFalse(wrapper_a > wrapper_b)
|
||||
self.assertTrue(wrapper_a >= wrapper_b)
|
||||
self.assertTrue(wrapper_a == wrapper_b)
|
||||
self.assertFalse(wrapper_a != wrapper_b)
|
||||
self.assertTrue(wrapper_a <= wrapper_b)
|
||||
self.assertFalse(wrapper_a < wrapper_b)
|
||||
wrapper_a.name = 'last'
|
||||
self.assertTrue(wrapper_a > wrapper_b)
|
||||
self.assertTrue(wrapper_a >= wrapper_b)
|
||||
self.assertFalse(wrapper_a == wrapper_b)
|
||||
self.assertTrue(wrapper_a != wrapper_b)
|
||||
self.assertFalse(wrapper_a <= wrapper_b)
|
||||
self.assertFalse(wrapper_a < wrapper_b)
|
||||
|
||||
def test_equality(self):
|
||||
tag = Tag('test', settings={})
|
||||
cat = Category('test', settings={})
|
||||
|
||||
# same name, but different class
|
||||
self.assertNotEqual(tag, cat)
|
||||
|
||||
# should be equal vs text representing the same name
|
||||
self.assertEqual(tag, u'test')
|
||||
|
||||
# should not be equal vs binary
|
||||
self.assertNotEqual(tag, b'test')
|
||||
|
||||
# Tags describing the same should be equal
|
||||
tag_equal = Tag('Test', settings={})
|
||||
self.assertEqual(tag, tag_equal)
|
||||
|
||||
cat_ascii = Category('指導書', settings={})
|
||||
self.assertEqual(cat_ascii, u'zhi-dao-shu')
|
||||
Loading…
Add table
Add a link
Reference in a new issue