black, add additional tests with combined fields and exclude_fields, add aliases for column names to tests with fields and exclude_fields

This commit is contained in:
collerek
2020-11-11 10:10:30 +01:00
parent b1a30eaffc
commit 9350b929aa
15 changed files with 148 additions and 46 deletions

View File

@ -18,6 +18,7 @@ class BaseField(FieldInfo):
column_type: sqlalchemy.Column
constraints: List = []
name: str
alias: str
primary_key: bool
autoincrement: bool
@ -33,10 +34,14 @@ class BaseField(FieldInfo):
default: Any
server_default: Any
@classmethod
def get_alias(cls) -> str:
return cls.alias if cls.alias else cls.name
@classmethod
def is_valid_field_info_field(cls, field_name: str) -> bool:
return (
field_name not in ["default", "default_factory"]
field_name not in ["default", "default_factory", "alias"]
and not field_name.startswith("__")
and hasattr(cls, field_name)
)
@ -93,7 +98,7 @@ class BaseField(FieldInfo):
@classmethod
def get_column(cls, name: str) -> sqlalchemy.Column:
return sqlalchemy.Column(
cls.name or name,
cls.alias or name,
cls.column_type,
*cls.constraints,
primary_key=cls.primary_key,