def test_nested_attribute(self, class_entity_repo, ent0, ent1, ent2): agg = class_entity_repo.get_aggregate(IMyEntity) agg.add(ent0) agg.add(ent1) agg.add(ent2) assert len(list(agg.iterator())) == 3 agg.filter = eq(**{'parent.text_ent':'222'}) assert len(list(agg.iterator())) == 1 agg.filter = None assert len(list(agg.iterator())) == 3 # TODO: Nested attribute ordering does not work with NoSQL. agg.order = desc('id') assert next(agg.iterator()) is ent2 # With nested filter and order. agg.filter = gt(**{'parent.text_ent':'000'}) assert next(agg.iterator()) is ent1 # With nested filter, order, and slice. agg.slice = slice(1, 2) assert next(agg.iterator()) is ent0
def test_multiple_ordering_spec_generator(self): second_candidate = Candidate(number_attr=0, text_attr='b') spec = desc('number_attr', 'text_attr') self.assert_true(spec.lt(second_candidate, self.candidate))
def test_desc_generator(self): second_candidate = Candidate(number_attr=0, text_attr='b') spec = desc('number_attr') & desc('text_attr') self.assert_true(spec.lt(second_candidate, self.candidate))