From b060c950ff200a3a93661c9026d1a3444661369e Mon Sep 17 00:00:00 2001 From: Daniel McKnight Date: Fri, 22 Nov 2024 16:34:54 -0800 Subject: [PATCH] Refactor `User` model rebuild to troubleshoot test failure --- neon_data_models/models/__init__.py | 2 ++ neon_data_models/models/api/mq/users.py | 18 ------------------ neon_data_models/models/user/database.py | 7 ++++--- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/neon_data_models/models/__init__.py b/neon_data_models/models/__init__.py index 733b0a3..3ca2d28 100644 --- a/neon_data_models/models/__init__.py +++ b/neon_data_models/models/__init__.py @@ -25,5 +25,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from neon_data_models.models.user import * +User.rebuild_model() + from neon_data_models.models.client import * from neon_data_models.models.api import * diff --git a/neon_data_models/models/api/mq/users.py b/neon_data_models/models/api/mq/users.py index d10b3ef..3d7b1cb 100644 --- a/neon_data_models/models/api/mq/users.py +++ b/neon_data_models/models/api/mq/users.py @@ -33,12 +33,6 @@ class CreateUserRequest(MQContext): - def __init__(self, **kwargs): - # `User` may be rebuilt upon init, so make sure this model is too - User.model_rebuild() - self.model_rebuild() - MQContext.__init__(self, **kwargs) - operation: Literal["create"] = "create" user: User = Field(description="User object to create") @@ -66,12 +60,6 @@ def validate_params(self) -> 'ReadUserRequest': class UpdateUserRequest(MQContext): - def __init__(self, **kwargs): - # `User` may be rebuilt upon init, so make sure this model is too - User.model_rebuild() - self.model_rebuild() - MQContext.__init__(self, **kwargs) - operation: Literal["update"] = "update" user: User = Field(description="Updated User object to write to database") auth_username: str = Field( @@ -97,12 +85,6 @@ def get_auth_username(self) -> 'UpdateUserRequest': class DeleteUserRequest(MQContext): - def __init__(self, **kwargs): - # `User` may be rebuilt upon init, so make sure this model is too - User.model_rebuild() - self.model_rebuild() - MQContext.__init__(self, **kwargs) - operation: Literal["delete"] = "delete" user: User = Field(description="Exact User object to remove from the " "database") diff --git a/neon_data_models/models/user/database.py b/neon_data_models/models/user/database.py index 4e7e885..699c08f 100644 --- a/neon_data_models/models/user/database.py +++ b/neon_data_models/models/user/database.py @@ -181,11 +181,12 @@ class TokenConfig(BaseModel): class User(BaseModel): - def __init__(self, **kwargs): + + @classmethod + def rebuild_model(cls): # Ensure `HanaToken` is populated from the import space from neon_data_models.models.api.jwt import HanaToken - self.model_rebuild() - BaseModel.__init__(self, **kwargs) + cls.model_rebuild() username: str password_hash: Optional[str] = None