diff test/test_indexer.py @ 6353:9d209d2b34ae

Add indexer_language to change stemmer for xapian FTS indexer Nagy Gabor asked how to enable the hungarian stemmer in roundup. This required editing indexer_xapian.py replacing hardcoded "english" term. This value is now exposed in the config file under [main] index_language. This only works for xapian currently.
author John Rouillard <rouilj@ieee.org>
date Sun, 28 Mar 2021 23:34:43 -0400
parents 5bf7b5debb09
children c26b9ce33ae3
line wrap: on
line diff
--- a/test/test_indexer.py	Sat Mar 27 13:05:50 2021 -0400
+++ b/test/test_indexer.py	Sun Mar 28 23:34:43 2021 -0400
@@ -55,6 +55,7 @@
         DATABASE = 'test-index'
     config = config()
     config[('main', 'indexer_stopwords')] = []
+    config[('main', 'indexer_language')] = "english"
 
 class IndexerTest(unittest.TestCase):
     def setUp(self):
@@ -194,7 +195,26 @@
         self.dex = Indexer(db)
     def tearDown(self):
         shutil.rmtree('test-index')
+    def test_invalid_language(self):
+        """ make sure we have a reasonable error message if
+            invalid language is specified """
+        l = db.config[('main', 'indexer_language')]
+        db.config[('main', 'indexer_language')] = "NO_LANG"
+        from roundup.backends.indexer_xapian import Indexer
+        with self.assertRaises(ValueError) as cm:
+            Indexer(db)
+        # note if Indexer(db) doesn't return ValueError
+        # all Xapian tests after this point will fail.
+        # because a valid langage will not be set.
+        # reset the valid language.
+        db.config[('main', 'indexer_language')] =  l
 
+        print(cm)
+        self.assertIn("ValueError", repr(cm.exception))
+        # look for failing language
+        self.assertIn("NO_LANG", cm.exception.args[0])
+        # look for supported language
+        self.assertIn("english", cm.exception.args[0])
 
 class RDBMSIndexerTest(object):
     def setUp(self):

Roundup Issue Tracker: http://roundup-tracker.org/