diff options
author | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2018-09-01 18:18:15 +0200 |
---|---|---|
committer | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2018-09-01 18:18:15 +0200 |
commit | 2178154a17ce04c4d9cc21b7a9430e3a91dcb759 (patch) | |
tree | ca63774131483827772013bd5dbe5be159f4e037 | |
parent | 61f0b236013c3b708ecfe6214b53a98fd342fac4 (diff) |
Don't die when indexing an empty list
-rw-r--r-- | lesana/collection.py | 2 | ||||
-rw-r--r-- | tests/data/complex/items/d4f361b0e3e541508eaf82c04451797f.yaml | 7 | ||||
-rw-r--r-- | tests/data/complex/settings.yaml | 4 | ||||
-rw-r--r-- | tests/test_collection.py | 4 |
4 files changed, 15 insertions, 2 deletions
diff --git a/lesana/collection.py b/lesana/collection.py index 0280f85..6c86436 100644 --- a/lesana/collection.py +++ b/lesana/collection.py @@ -179,6 +179,8 @@ class Collection(object): values = entry.data.get(field['name']) else: values = [entry.data.get(field['name'])] + if not values: + values = [] for v in values: try: self.indexer.index_text(v) diff --git a/tests/data/complex/items/d4f361b0e3e541508eaf82c04451797f.yaml b/tests/data/complex/items/d4f361b0e3e541508eaf82c04451797f.yaml new file mode 100644 index 0000000..2331e69 --- /dev/null +++ b/tests/data/complex/items/d4f361b0e3e541508eaf82c04451797f.yaml @@ -0,0 +1,7 @@ +name: 'Empty lists' +description: | + This entry has no tags and no keywords +position: '' +something: +tags: +keywords: diff --git a/tests/data/complex/settings.yaml b/tests/data/complex/settings.yaml index bd2179c..612591f 100644 --- a/tests/data/complex/settings.yaml +++ b/tests/data/complex/settings.yaml @@ -19,3 +19,7 @@ fields: type: list list: string index: field + - name: keywords + type: list + list: string + index: free diff --git a/tests/test_collection.py b/tests/test_collection.py index 84f0a7a..2b1864a 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -241,9 +241,9 @@ class testComplexCollection(unittest.TestCase): self.collection.settings['name'], "Fully featured lesana collection" ) - self.assertEqual(len(self.collection.settings['fields']), 5) + self.assertEqual(len(self.collection.settings['fields']), 6) self.assertIsNotNone(self.collection.stemmer) - self.assertEqual(len(self.collection.indexed_fields), 4) + self.assertEqual(len(self.collection.indexed_fields), 5) def test_index(self): self.collection.update_cache() |