emmental/tests/test_format.py

48 lines
2.3 KiB
Python
Raw Normal View History

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