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