emmental/tests/test_format.py

48 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright 2022 (c) Anna Schumaker
"""Tests our string formatting functions."""
import unittest
from emmental import format
class TestFormatter(unittest.TestCase):
"""Tests our formatting functions."""
def test_search(self):
"""Test formatting a case-insensitive search query."""
self.assertIsNone(format.search(""))
self.assertIsNone(format.search(" "))
self.assertEqual(format.search(" TeSt "), "*test*")
self.assertEqual(format.search("*Test*"), "*test*")
self.assertEqual(format.search("^Test*"), "test*")
self.assertEqual(format.search("^*Test*"), "*test*")
self.assertEqual(format.search("*Test$"), "*test")
self.assertEqual(format.search("^"), "*")
self.assertEqual(format.search("$"), "*")
def test_ignore_words(self):
"""Test words that aren't included at the start of the sort key."""
self.assertSetEqual(format.IGNORE_WORDS, set(["a", "an", "the", ""]))
def test_sort_key(self):
"""Test translating a string into a sort key."""
self.assertEqual(format.sort_key(""), ())
self.assertEqual(format.sort_key("Test Text"), ("test", "text"))
self.assertEqual(format.sort_key("Tést Téxt"), ("tést", "téxt"))
self.assertEqual(format.sort_key("A Test"), ("test",))
self.assertEqual(format.sort_key("A"), ("a",))
self.assertEqual(format.sort_key("An Extra Test"), ("extra", "test",))
self.assertEqual(format.sort_key("An"), ("an",))
self.assertEqual(format.sort_key("The Test"), ("test",))
self.assertEqual(format.sort_key("The"), ("the",))
self.assertEqual(format.sort_key("Test The"), ("test", "the"))
self.assertEqual(format.sort_key("Test-Text"), ("test", "text"))
self.assertEqual(format.sort_key("Test_Text"), ("test", "text"))
self.assertEqual(format.sort_key("\"Test\" Text"), ("test", "text"))
self.assertEqual(format.sort_key("“Test” Text"), ("test", "text"))
self.assertEqual(format.sort_key("'Test' Text"), ("test", "text"))
self.assertEqual(format.sort_key("Fish N Chips"),
("fish", "n", "chips"))
self.assertEqual(format.sort_key("ac/dc"), ("ac", "dc"))
self.assertEqual(format.sort_key("/a/B/c/D"),
("a", "b", "c", "d"))