Add unit tests for CitekeyFilter
This commit is contained in:
parent
4f2a025814
commit
d626fe4251
@ -4,9 +4,9 @@ from __future__ import unicode_literals
|
||||
import unittest
|
||||
|
||||
import dotdot
|
||||
from pubs.query import (AuthorFilter, FieldFilter, YearFilter,
|
||||
_query_block_to_filter, get_paper_filter,
|
||||
InvalidQuery)
|
||||
from pubs.query import (AuthorFilter, CitekeyFilter, FieldFilter,
|
||||
YearFilter, _query_block_to_filter,
|
||||
get_paper_filter, InvalidQuery)
|
||||
|
||||
from pubs.paper import Paper
|
||||
|
||||
@ -43,6 +43,49 @@ class TestAuthorFilter(unittest.TestCase):
|
||||
self.assertFalse(AuthorFilter('lawrence')(page_paper))
|
||||
|
||||
|
||||
class TestCitekeyFilter(unittest.TestCase):
|
||||
|
||||
def test_fails_if_no_citekey(self):
|
||||
no_citekey = doe_paper.deepcopy()
|
||||
no_citekey.citekey = ''
|
||||
self.assertFalse(CitekeyFilter('whatever')(no_citekey))
|
||||
|
||||
def test_match_case(self):
|
||||
self.assertTrue(CitekeyFilter('doe201')(doe_paper))
|
||||
self.assertTrue(CitekeyFilter('doe201', case_sensitive=False)(doe_paper))
|
||||
self.assertTrue(CitekeyFilter('Doe201')(doe_paper))
|
||||
|
||||
def test_do_not_match_case(self):
|
||||
self.assertFalse(CitekeyFilter('dOe201')(doe_paper))
|
||||
self.assertFalse(CitekeyFilter('dOe201', case_sensitive=True)(doe_paper))
|
||||
self.assertFalse(CitekeyFilter('doe201', case_sensitive=True)(doe_paper))
|
||||
self.assertTrue(CitekeyFilter('dOe201', case_sensitive=False)(doe_paper))
|
||||
|
||||
def test_latex_enc(self):
|
||||
latexenc_paper = doe_paper.deepcopy()
|
||||
latexenc_paper.citekey = "{G}r{\\\"u}n2013"
|
||||
self.assertTrue(CitekeyFilter('Grün')(latexenc_paper))
|
||||
self.assertTrue(CitekeyFilter('Gr{\\\"u}n')(latexenc_paper))
|
||||
|
||||
def test_normalize_unicode(self):
|
||||
latexenc_paper = doe_paper.deepcopy()
|
||||
latexenc_paper.citekey = "Jalape\u00f1o2013"
|
||||
self.assertTrue(CitekeyFilter("Jalapen\u0303o")(latexenc_paper))
|
||||
|
||||
def test_strict(self):
|
||||
latexenc_paper = doe_paper.deepcopy()
|
||||
latexenc_paper.citekey = "Jalape\u00f1o2013"
|
||||
self.assertFalse(CitekeyFilter("Jalapen\u0303o", strict=True)(latexenc_paper))
|
||||
latexenc_paper.citekey = "{G}ros2013"
|
||||
self.assertFalse(CitekeyFilter("Gros", strict=True)(latexenc_paper))
|
||||
|
||||
def test_strict_implies_case(self):
|
||||
latexenc_paper = doe_paper.deepcopy()
|
||||
latexenc_paper.citekey = "Gros2013"
|
||||
self.assertFalse(
|
||||
CitekeyFilter("gros", case_sensitive=False, strict=True)(latexenc_paper))
|
||||
|
||||
|
||||
class TestCheckTag(unittest.TestCase):
|
||||
pass
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user