def test_querystring_from_filter_by_ko_bad_op(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'unknown' value = 'anyblok-core' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] qs.from_filter_by(query) assert ("Filter 'unknown' does not exist." in request.errors.messages)
def test_querystring_from_filter_by_without_key(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = None op = 'eq' value = 'anyblok-core' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] qs.from_filter_by(query) assert len(request.errors.messages) == 1
def test_querystring_from_filter_by_ok(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'eq' value = 'anyblok-core' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] Q = qs.from_filter_by(query) obj = Q.one() assert obj.name == 'anyblok-core'
def test_querystring_from_filter_by_ok(self): registry = self.init_registry(None) request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'name' op = 'eq' value = 'anyblok-core' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] Q = qs.from_filter_by(query) obj = Q.one() self.assertEqual(obj.name, 'anyblok-core')
def test_querystring_from_filter_by_bad_key(self, registry_blok): registry = registry_blok request = MockRequest(self) model = registry.System.Blok query = model.query() key = 'badkey' op = 'eq' value = 'anyblok-core' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] qs.from_filter_by(query) assert ("Filter 'badkey': 'badkey' does not exist in model " "<class 'anyblok.model.factory.ModelSystemBlok'>." in request.errors.messages)
def test_querystring_from_filter_by_with_relationship_bad_key(self): registry = self.init_registry(add_many2one_class) request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.badkey' op = 'eq' value = 'test' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] qs.from_filter_by(query) self.assertIn( "Filter 'test.badkey': 'badkey' does not exist in model " "<class 'anyblok.model.ModelTest'>.", request.errors.messages)
def test_querystring_from_filter_by_with_relationship_bad_key( self, registry_blok_with_m2o): registry = registry_blok_with_m2o request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.badkey' op = 'eq' value = 'test' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] qs.from_filter_by(query) assert ("Filter 'test.badkey': 'badkey' does not exist in model " "<class 'anyblok.model.factory.ModelTest'>." in request.errors.messages)
def test_querystring_from_filter_by_with_relationship(self): registry = self.init_registry(add_many2one_class) request = MockRequest(self) model = registry.Test2 query = model.query() key = 'test.name' op = 'eq' value = 'test' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] Q = qs.from_filter_by(query) self.assertEqual(len(Q.all()), 0) t1 = registry.Test(name='test') t2 = registry.Test(name='other') model.insert(test=t1) self.assertEqual(len(Q.all()), 1) model.insert(test=t2) self.assertEqual(len(Q.all()), 1) model.insert(test=t2) self.assertEqual(len(Q.all()), 1) model.insert(test=t1) self.assertEqual(len(Q.all()), 2)
def test_querystring_from_filter_by_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 = 'eq' value = 'test' qs = QueryString(request, model) qs.filter_by = [dict(key=key, op=op, value=value)] Q = qs.from_filter_by(query) assert len(Q.all()) == 0 t1 = registry.Test(name='test') t2 = registry.Test(name='other') model.insert(test=t1) assert len(Q.all()) == 1 model.insert(test=t2) assert len(Q.all()) == 1 model.insert(test=t2) assert len(Q.all()) == 1 model.insert(test=t1) assert len(Q.all()) == 2