def test_sorted_set(self): writer = SortedSetWriter(str) hzset = SortedSetHandle('myzset', str) writer.append(hzset, 'spam', 3.25) writer.append(hzset, 'eggs', 3.24) self.assertEqual(SortedSet(hzset), ('eggs', 'spam')) self.assertEqual(SortedSet(hzset, lte = 3.24), ('eggs',)) self.assertEqual(SortedSet.zrange(hzset, 0, 0), ('eggs',)) self.assertEqual(SortedSet.zfind(hzset, gt = 3.24), ('spam',))
def update_all(self, hcont, obj): assert self.field.owned data = obj.make_dict() self.element_writer._check_unique_for_update(obj, data) pl = ds.pipeline(True) SortedSetWriter.raw_remove(self, pl, hcont, obj.oid) self.element_writer._do_update_attrs(pl, obj, data) score = getattr(obj, self.field.sort_field.name) SortedSetWriter.raw_append(self, pl, hcont, obj.oid, score) pl.execute()
def test_model_sorted_set(self): writer = SortedSetWriter(Fighter) hzset = SortedSetHandle('myzset', Fighter) f1, f2, f3 = map(Fighter.by_id, [21, 33, 47]) writer.append(hzset, f1, 3.25) writer.append(hzset, f2, 3.24) writer.append(hzset, f3, 4) self.assertEqual(SortedSet.zrange(hzset), (f2, f1, f3)) self.assertEqual(SortedSet.zrevrange(hzset, 0, 0), (f3,)) self.assertEqual(SortedSet(hzset, gt = 3.24), (f1, f3))