def test_compound_field_long(self): ms = self.model['model'].copy() a = 'xxxxfdgjkdhgsjkfhglhdjghdfhlkgshlfdhjkhfdlkjhjklfdhljkgdfhlkjghjk' ms['dimensions']['function']['attributes'][a] = \ ms['dimensions']['function']['attributes']['description'] del ms['dimensions']['function']['attributes']['description'] validate_model(ms)
def test_basic_validate(self): try: in_ = self.model['model'] out = validate_model(in_) assert len(out) == len(in_), out except ValidationError, i: assert False, i
def test_set_label_attribute(self): ms = self.model['model'].copy() ms['dimensions']['function']['label_attribute'] = 'label' ms['dimensions']['function']['key_attribute'] = 'name' ms = validate_model(ms) assert ms['dimensions']['function']['label_attribute'] == 'label' assert ms['dimensions']['function']['key_attribute'] == 'name'
def test_basic_validate(self): try: in_ = self.model['model'] out = validate_model(in_) assert len(out) == len(in_), out except Invalid, i: assert False, i.asdict()
def update_model(name): dataset = get_dataset(name) require.dataset.update(dataset) model_data = validate_model(request_data()) dataset.update_model(model_data) dataset.touch() db.session.commit() return model(name)
def update_model(name): dataset = get_dataset(name) require.dataset.update(dataset) data = request_data() if isinstance(data, dict): data['fact_table'] = dataset.fact_table.table_name dataset.model = validate_model(data) db.session.commit() return model(name)
def get_model(model): """ Get and validate the model. If the model doesn't validate we exit the program. """ model = json_of_url(model) # Validate the model try: log.info("Validating model") model = validate_model(model) except Invalid as i: log.error("Errors occured during model validation:") for field, error in i.asdict().items(): log.error("%s: %s", field, error) sys.exit(1) return model
def test_no_measures(self): ms = self.model['model'] ms['measures'] = {} validate_model(ms)
def test_invalid_name(self): ms = self.model['model'] ms['dimensions']['ba nana'] = ms['dimensions']['function'] validate_model(ms)
def test_from_is_compound(self): ms = self.model['model'] ms['dimensions']['from'] = ms['measures']['cofinance'] validate_model(ms)
def test_compound_field_with_dash(self): ms = self.model['model'].copy() ms['dimensions']['function']['attributes']['id-col'] = \ ms['dimensions']['function']['attributes']['description'] del ms['dimensions']['function']['attributes']['description'] validate_model(ms)
def test_compound_field_has_column(self): ms = self.model['model'].copy() del ms['dimensions']['function']['attributes']['description']['column'] validate_model(ms)
def test_keep_extra_data(self): ms = self.model['model'] ms['ignore_columns'] = ['huhu'] os = validate_model(ms) assert 'ignore_columns' in os, os.keys()
def test_measure_has_column(self): ms = self.model['model'].copy() del ms['measures']['cofinance']['column'] validate_model(ms)
def test_compound_field_invalid_name(self): ms = self.model['model'].copy() ms['dimensions']['function']['attributes']['ba nanana'] = \ ms['dimensions']['function']['attributes']['description'] del ms['dimensions']['function']['attributes']['description'] validate_model(ms)
def test_date_has_column(self): ms = self.model['model'].copy() del ms['dimensions']['time']['attributes']['year']['column'] validate_model(ms)
def test_no_dimensions(self): ms = self.model['model'] ms['dimensions'] = {} validate_model(ms)
def test_measure_data_type(self): ms = self.model['model'].copy() ms['measures']['cofinance']['type'] = 'string' validate_model(ms)
def test_set_invalid_label_attribute(self): ms = self.model['model'].copy() ms['dimensions']['function']['label_attribute'] = 'foo' os = validate_model(ms) assert False, os['dimensions']
def update_model(name): dataset = get_dataset(name) require.dataset.update(dataset) dataset.data['model'] = validate_model(request_data()) db.session.commit() return model(name)