def test_model_invalid_fk(self): with self.assertRaises(InvalidFieldTypeError): StatikModel( name='TestModel', from_string=TEST_MODEL_INVALID_FK, model_names=['TestModel'] )
def test_model_valid_fk(self): model = StatikModel( name='TestModel', from_string=TEST_MODEL_VALID_FK, model_names=['TestModel', 'OtherModel'] ) self.assertEqual('TestModel', model.name) self.assertIsInstance(model.fields['string_field'], StatikStringField) self.assertIsInstance(model.fields['other_field'], StatikForeignKeyField) self.assertEqual('OtherModel', model.fields['other_field'].field_type)
def test_model_from_string(self): model = StatikModel( name='TestModel', from_string=TEST_MODEL_VALID, model_names=['TestModel'] ) self.assertEqual('TestModel', model.name) self.assertIsInstance(model.fields['string_field'], StatikStringField) self.assertIsInstance(model.fields['datetime_field'], StatikDateTimeField) self.assertIsInstance(model.fields['int_field'], StatikIntegerField) self.assertIsInstance(model.fields['bool_field'], StatikBooleanField) self.assertIsInstance(model.fields['some_content_field'], StatikContentField) self.assertIsInstance(model.fields['text_field'], StatikTextField) self.assertIsInstance(model.fields['name'], StatikStringField)
def load_models(self): models_path = os.path.join(self.path, StatikProject.MODELS_DIR) logger.debug("Loading models from: %s" % models_path) if not os.path.isdir(models_path): raise MissingProjectFolderError(StatikProject.MODELS_DIR, "Project is missing its models folder") model_files = list_files(models_path, ['yml', 'yaml']) logger.debug("Found %d model(s) in project" % len(model_files)) # get all of the models' names model_names = [extract_filename(model_file) for model_file in model_files] models = {} for model_file in model_files: model_name = extract_filename(model_file) models[model_name] = StatikModel( os.path.join(models_path, model_file), name=model_name, model_names=model_names ) return models
def load_models(self): models_path = os.path.join(self.path, StatikProject.MODELS_DIR) logger.debug("Loading models from: %s", models_path) if not os.path.isdir(models_path): raise MissingProjectFolderError(StatikProject.MODELS_DIR) model_files = list_files(models_path, ['yml', 'yaml']) logger.debug("Found %d model(s) in project", len(model_files)) # get all of the models' names model_names = [extract_filename(model_file) for model_file in model_files] models = {} for model_file in model_files: model_name = extract_filename(model_file) models[model_name] = StatikModel( filename=os.path.join(models_path, model_file), encoding=self.config.encoding, name=model_name, model_names=model_names, error_context=self.error_context ) return models
def test_invalid_model(self): with self.assertRaises(MissingParameterError): StatikModel()