diff options
author | Benjamin Saller <bcsaller@objectrealms.net> | 2007-07-20 18:51:56 (GMT) |
---|---|---|
committer | Benjamin Saller <bcsaller@objectrealms.net> | 2007-07-20 18:51:56 (GMT) |
commit | 9a44a5bafb391faa57a58efdc0f6d451221c9d45 (patch) | |
tree | 1408bed3cb025c356d3bdb1955704d9e683bcee8 | |
parent | 0bb57949c9a673be49e87c69469128b9928a82da (diff) |
help insolate vs unspecified properties
-rw-r--r-- | src/olpc/datastore/model.py | 9 | ||||
-rw-r--r-- | tests/test_model.py | 8 |
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 |