Changeset 3275

Show
Ignore:
Timestamp:
06/01/07 16:12:28 (1 year ago)
Author:
pobrien
Message:

Since a set cannot be compared to something that is not a set, such as UNASSIGNED, store the EntitySetSet? field as a tuple of tuples instead.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Schevo/schevo/field.py

    r3274 r3275  
    14721472            new_set = set() 
    14731473            for item_set in value: 
    1474                 new_set.add(frozenset(Placeholder(entity) 
    1475                                       for entity in item_set)) 
    1476             value = frozenset(new_set) 
     1474                new_set.add(tuple(Placeholder(entity) for entity in item_set)) 
     1475            value = tuple(new_set) 
    14771476        return value 
    14781477 
     
    15141513    def _restore(self, db): 
    15151514        value = self._value 
    1516         if isinstance(value, frozenset): 
     1515        if isinstance(value, tuple): 
    15171516            new_set = set() 
    1518             for item_set in value: 
     1517            for items in value: 
    15191518                new_set.add(frozenset(placeholder.restore(db) 
    1520                                       for placeholder in item_set)) 
     1519                                      for placeholder in items)) 
    15211520            value = new_set 
    15221521        self._value = value 
  • trunk/Schevo/tests/test_field_entitysetset.py

    r3233 r3275  
    4949        bar = ex(db.Bar.t.create(foo_set=set([frozenset([foo])]))) 
    5050        assert bar.foo_set == set([frozenset([foo])]) 
     51        bar2 = ex(db.Bar.t.create(foo_set=UNASSIGNED)) 
     52        assert bar2.foo_set is UNASSIGNED 
    5153        self.reopen() 
    5254        assert bar.foo_set == set([frozenset([foo])]) 
     55        assert bar2.foo_set is UNASSIGNED 
    5356 
    5457    def test_store_and_retrieve_multiple_entities(self):