def test_additional_keys_in_measurements(self): experiment = read_text_file("data/text/one_parameter_1.txt") schema = ExperimentSchema() exp_data = schema.dump(experiment) # print(json.dumps(exp_data, indent=1)) exp_data['measurements']['TEST_ATTRIBUTE'] = 'TEST_ATTRIBUTE' self.assertRaises(ValidationError, schema.load, exp_data)
def setUpClass(cls) -> None: cls.experiment = read_text_file("data/text/one_parameter_1.txt") ModelGenerator(cls.experiment).model_all() schema = ExperimentSchema() # print(json.dumps(schema.dump(cls.experiment), indent=1)) exp_str = schema.dumps(cls.experiment) cls.reconstructed: Experiment = schema.loads(exp_str)
def test_additional_keys_in_experiment(self): experiment = read_text_file("data/text/one_parameter_1.txt") schema = ExperimentSchema() exp_data = schema.dump(experiment) # print(json.dumps(exp_data, indent=1)) exp_data['TEST_ATTRIBUTE'] = 'TEST_ATTRIBUTE' reconstructed: Experiment = schema.load(exp_data) self.assertFalse(hasattr(reconstructed, 'TEST_ATTRIBUTE'))
def read_experiment(path, progress_bar=DUMMY_PROGRESS): progress_bar.total += 3 schema = ExperimentSchema() schema.set_progress_bar(progress_bar) try: with ZipFile(path, 'r', allowZip64=True) as file: progress_bar.update() data = file.read(EXPERIMENT_DATA_FILE).decode("utf-8") progress_bar.update() try: experiment = schema.loads(data) progress_bar.update() return experiment except ValidationError as v_err: raise FileFormatError(str(v_err)) from v_err except (IOError, zipfile.BadZipFile) as err: raise RecoverableError(str(err)) from err
def write_experiment(experiment, path, progress_bar=DUMMY_PROGRESS): progress_bar.total += 3 schema = ExperimentSchema() try: with ZipFile(path, 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=1, allowZip64=True) as file: progress_bar.update() try: data = schema.dumps(experiment) progress_bar.update() file.writestr(EXPERIMENT_DATA_FILE, data) progress_bar.update() except ValidationError as v_err: raise FileFormatError(str(v_err)) from v_err except (IOError, FileNotFoundError, zipfile.BadZipFile) as err: raise RecoverableError(str(err)) from err
def setUpClass(cls) -> None: cls.experiment = read_text_file("data/text/two_parameter_3.txt") schema = ExperimentSchema() # print(json.dumps(schema.dump(cls.experiment), indent=1)) exp_str = schema.dumps(cls.experiment) cls.reconstructed: Experiment = schema.loads(exp_str)
def test_validation(self): experiment = read_text_file("data/text/one_parameter_1.txt") schema = ExperimentSchema() exp_data = schema.dump(experiment) val_erros = schema.validate(exp_data) self.assertDictEqual({}, val_erros)