summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena ``of Valhalla'' Grandi <valhalla@trueelena.org>2018-09-01 18:18:15 +0200
committerElena ``of Valhalla'' Grandi <valhalla@trueelena.org>2018-09-01 18:18:15 +0200
commit2178154a17ce04c4d9cc21b7a9430e3a91dcb759 (patch)
treeca63774131483827772013bd5dbe5be159f4e037
parent61f0b236013c3b708ecfe6214b53a98fd342fac4 (diff)
Don't die when indexing an empty list
-rw-r--r--lesana/collection.py2
-rw-r--r--tests/data/complex/items/d4f361b0e3e541508eaf82c04451797f.yaml7
-rw-r--r--tests/data/complex/settings.yaml4
-rw-r--r--tests/test_collection.py4
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()