def test_basic_validate(self): try: in_ = self.model['views'] schema = views_schema(self.state) out = schema.deserialize(in_) assert len(out)==len(in_), out except Invalid, i: assert False, i.asdict()
def views_update(self, dataset, format='html'): self._get_dataset(dataset) require.dataset.update(c.dataset) errors, views = {}, None try: views = json.loads(request.params.get('views')) schema = views_schema(ValidationState(c.dataset.model)) c.dataset.data['views'] = schema.deserialize(views) db.session.commit() h.flash_success(_("The views have been updated.")) except (ValueError, TypeError): abort(400, _("The views could not be decoded as JSON!")) except Invalid, i: errors = i.asdict()
def test_no_drilldown(self): vs = list(self.model['views']) vs[0]['drilldown'] = '' schema = views_schema(self.state) schema.deserialize(vs)
def test_invalid_dimension_measure(self): vs = list(self.model['views']) vs[0]['dimension'] = 'amount' schema = views_schema(self.state) schema.deserialize(vs)
def test_invalid_dimension_attribute_name(self): vs = list(self.model['views']) vs[0]['dimension'] = 'function.name' schema = views_schema(self.state) schema.deserialize(vs)
def test_invalid_dimension(self): vs = list(self.model['views']) vs[0]['dimension'] = 'banana' schema = views_schema(self.state) schema.deserialize(vs)
def test_invalid_cut(self): vs = list(self.model['views']) vs[0]['cuts'] = {'banana': 'split'} schema = views_schema(self.state) schema.deserialize(vs)
def test_empty_label(self): vs = list(self.model['views']) vs[0]['label'] = ' ' schema = views_schema(self.state) schema.deserialize(vs)
def test_no_label(self): vs = list(self.model['views']) del vs[0]['label'] schema = views_schema(self.state) schema.deserialize(vs)
def test_invalid_name(self): vs = list(self.model['views']) vs[0]['name'] = 'ba nana' schema = views_schema(self.state) schema.deserialize(vs)
def model_schema(state): schema = mapping_node('model') schema.add(dataset_schema(state)) schema.add(mapping_schema(state)) schema.add(views_schema(state)) return schema