def test_querystring_from_order_by_without_key(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = None op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) assert len(request.errors.messages) == 1
def test_querystring_from_order_by_ok(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] Q = qs.from_order_by(query) assert Q.all().name == query.order_by(model.name.asc()).all().name
def test_querystring_from_order_by_without_key(self): registry = self.init_registry(None) request = MockRequest(self) model = registry.System.Blok query = model.query() key = None op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) self.assertEqual(len(request.errors.messages), 1)
def test_querystring_from_order_by_ko_bad_op(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'unknown' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) assert ("ORDER_by operator 'unknown' does not exist." in request.errors.messages)
def test_querystring_from_order_by_ok(self): registry = self.init_registry(None) request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] Q = qs.from_order_by(query) self.assertEqual(Q.all().name, query.order_by(model.name.asc()).all().name)
def test_querystring_from_order_by_bad_key(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'badkey' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) assert ("Order 'badkey': 'badkey' does not exist in model " "<class 'anyblok.model.factory.ModelSystemBlok'>." in request.errors.messages)
def test_querystring_from_order_by_bad_key_relationship(self): registry = self.init_registry(add_many2one_class) request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.badkey' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) self.assertIn( "Order 'test.badkey': 'badkey' does not exist in model " "<class 'anyblok.model.ModelTest'>.", request.errors.messages)
def test_querystring_from_order_by_bad_key_relationship( self, registry_blok_with_m2o): registry = registry_blok_with_m2o request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.badkey' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] qs.from_order_by(query) assert ("Order 'test.badkey': 'badkey' does not exist in model " "<class 'anyblok.model.factory.ModelTest'>." in request.errors.messages)
def test_querystring_from_order_by_ok_with_relationship(self): registry = self.init_registry(add_many2one_class) request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.name' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] Q = qs.from_order_by(query) t1 = registry.Test(name='test') t2 = registry.Test(name='other') model.insert(test=t1) model.insert(test=t2) model.insert(test=t2) model.insert(test=t1) query = query.join(registry.Test2.test) query = query.order_by(registry.Test.name.asc()) self.assertEqual(Q.all(), query.all())
def test_querystring_from_order_by_ok_with_relationship( self, registry_blok_with_m2o): registry = registry_blok_with_m2o request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.name' op = 'asc' qs = QueryString(request, model) qs.order_by = [dict(key=key, op=op)] Q = qs.from_order_by(query) t1 = registry.Test(name='test') t2 = registry.Test(name='other') model.insert(test=t1) model.insert(test=t2) model.insert(test=t2) model.insert(test=t1) query = query.join(registry.Test2.test) query = query.order_by(registry.Test.name.asc()) assert Q.all() == query.all()