Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Saller <bcsaller@objectrealms.net>2007-07-20 18:51:56 (GMT)
committer Benjamin Saller <bcsaller@objectrealms.net>2007-07-20 18:51:56 (GMT)
commit9a44a5bafb391faa57a58efdc0f6d451221c9d45 (patch)
tree1408bed3cb025c356d3bdb1955704d9e683bcee8
parent0bb57949c9a673be49e87c69469128b9928a82da (diff)
help insolate vs unspecified properties
-rw-r--r--src/olpc/datastore/model.py9
-rw-r--r--tests/test_model.py8
2 files changed, 13 insertions, 4 deletions
diff --git a/src/olpc/datastore/model.py b/src/olpc/datastore/model.py
index 9ff2e1f..9f51cf6 100644
--- a/src/olpc/datastore/model.py
+++ b/src/olpc/datastore/model.py
@@ -202,8 +202,13 @@ class Content(object):
if isinstance(v, list) and len(v) == 1:
v = v[0]
field = self._model.fields.get(k)
- kind = propertyByKind(field[1])
- v = kind.from_xapian(v)
+ if field:
+ kind = propertyByKind(field[1])
+ v = kind.from_xapian(v)
+ else:
+ # do some generic property handling
+ if v: v = str(v)
+ else: v = ''
d[k] = v
return d
diff --git a/tests/test_model.py b/tests/test_model.py
index bb30426..a346510 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -107,12 +107,16 @@ class Test(unittest.TestCase):
ds.complete_indexing()
- ds.update(uid, {'title' : 'Random Extras the sequel', 'foobar' : 'whodofoodo',
+ ds.update(uid, {'title' : 'Random Extras the sequel',
+ 'foobar' : 'whodofoodo',
'incept:date' : datetime.datetime.now().isoformat()})
ds.complete_indexing()
- assert ds.find('whodofoodo')[1] == 1
+ # ignored w/o prefix
+ assert ds.find('whodofoodo')[1] == 0
+ # found with it
+ assert ds.find('foobar:whodofoodo')[1] == 1
c = ds.get_properties(uid)
assert 'foobar' in c
assert 'title' in c