Mercurial > p > roundup > code
diff roundup/backends/back_anydbm.py @ 1955:b00ad075bb2f
more unit tests, fixes and cleanups
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 10 Dec 2003 01:40:51 +0000 |
| parents | 767ff2a03eee |
| children | fc52d57c6c3e |
line wrap: on
line diff
--- a/roundup/backends/back_anydbm.py Wed Dec 10 01:40:12 2003 +0000 +++ b/roundup/backends/back_anydbm.py Wed Dec 10 01:40:51 2003 +0000 @@ -15,7 +15,7 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -#$Id: back_anydbm.py,v 1.133 2003-12-05 09:47:46 richard Exp $ +#$Id: back_anydbm.py,v 1.134 2003-12-10 01:40:51 richard Exp $ ''' This module defines a backend that saves the hyperdatabase in a database chosen by anydbm. It is guaranteed to always be available in python @@ -1630,21 +1630,12 @@ if isinstance(propclass, Link): if type(v) is not type([]): v = [v] - # replace key values with node ids u = [] - link_class = self.db.classes[propclass.classname] for entry in v: # the value -1 is a special "not set" sentinel if entry == '-1': entry = None - elif not num_re.match(entry): - try: - entry = link_class.lookup(entry) - except (TypeError,KeyError): - raise ValueError, 'property "%s": %s not a %s'%( - k, entry, self.properties[k].classname) u.append(entry) - l.append((LINK, k, u)) elif isinstance(propclass, Multilink): # the value -1 is a special "not set" sentinel @@ -1652,20 +1643,7 @@ v = [] elif type(v) is not type([]): v = [v] - - # replace key values with node ids - u = [] - link_class = self.db.classes[propclass.classname] - for entry in v: - if not num_re.match(entry): - try: - entry = link_class.lookup(entry) - except (TypeError,KeyError): - raise ValueError, 'new property "%s": %s not a %s'%( - k, entry, self.properties[k].classname) - u.append(entry) - u.sort() - l.append((MULTILINK, k, u)) + l.append((MULTILINK, k, v)) elif isinstance(propclass, String) and k != 'id': if type(v) is not type([]): v = [v]
