From b44bd41b86952605dcd04937476526a54da0edd2 Mon Sep 17 00:00:00 2001 From: mike cullerton Date: Wed, 28 Sep 2022 16:36:23 -0400 Subject: [PATCH] mypy --- src/spiffworkflow_backend/models/secret_model.py | 4 ++-- src/spiffworkflow_backend/services/secret_service.py | 2 +- .../services/service_task_service.py | 4 +++- .../integration/test_secret_service.py | 9 +++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/spiffworkflow_backend/models/secret_model.py b/src/spiffworkflow_backend/models/secret_model.py index 664bf993..f24c636e 100644 --- a/src/spiffworkflow_backend/models/secret_model.py +++ b/src/spiffworkflow_backend/models/secret_model.py @@ -5,7 +5,7 @@ from flask_bpmn.models.db import db from flask_bpmn.models.db import SpiffworkflowBaseDBModel from marshmallow import Schema from sqlalchemy import ForeignKey -from sqlalchemy.orm import relationship +from sqlalchemy.orm import relationship, RelationshipProperty from spiffworkflow_backend.models.user import UserModel @@ -20,7 +20,7 @@ class SecretModel(SpiffworkflowBaseDBModel): value: str = db.Column(db.String(255), nullable=False) creator_user_id: int = db.Column(ForeignKey(UserModel.id), nullable=False) - allowed_processes: list["SecretAllowedProcessPathModel"] = relationship("SecretAllowedProcessPathModel", cascade="delete") + allowed_processes: RelationshipProperty["SecretAllowedProcessPathModel"] = relationship("SecretAllowedProcessPathModel", cascade="delete") @dataclass() diff --git a/src/spiffworkflow_backend/services/secret_service.py b/src/spiffworkflow_backend/services/secret_service.py index 0cd1acc1..945836e6 100644 --- a/src/spiffworkflow_backend/services/secret_service.py +++ b/src/spiffworkflow_backend/services/secret_service.py @@ -54,7 +54,7 @@ class SecretService: return secret_model @staticmethod - def get_secret(key: str) -> Optional[str]: + def get_secret(key: str) -> Optional[SecretModel]: """Get_secret.""" secret: SecretModel = ( db.session.query(SecretModel).filter(SecretModel.key == key) diff --git a/src/spiffworkflow_backend/services/service_task_service.py b/src/spiffworkflow_backend/services/service_task_service.py index bc5d6e66..73a60e90 100644 --- a/src/spiffworkflow_backend/services/service_task_service.py +++ b/src/spiffworkflow_backend/services/service_task_service.py @@ -23,7 +23,9 @@ class ServiceTaskDelegate: secret_prefix = "secret:" # noqa: S105 if value.startswith(secret_prefix): key = value.removeprefix(secret_prefix) - value = SecretService().get_secret(key).value + secret = SecretService().get_secret(key) + assert secret + value = secret.value return value @staticmethod diff --git a/tests/spiffworkflow_backend/integration/test_secret_service.py b/tests/spiffworkflow_backend/integration/test_secret_service.py index d544339a..398f835d 100644 --- a/tests/spiffworkflow_backend/integration/test_secret_service.py +++ b/tests/spiffworkflow_backend/integration/test_secret_service.py @@ -1,7 +1,8 @@ """Test_secret_service.""" import json - import pytest + +from typing import Optional from flask.app import Flask from flask.testing import FlaskClient from flask_bpmn.api.api_error import ApiError @@ -122,9 +123,11 @@ class TestSecretService(SecretServiceTestHelpers): user = self.find_or_create_user() self.add_test_secret(user) secret = SecretService.get_secret(self.test_key) + assert secret assert secret.value == self.test_value SecretService.update_secret(self.test_key, "new_secret_value", user.id) new_secret = SecretService.get_secret(self.test_key) + assert new_secret assert new_secret.value == "new_secret_value" # noqa: S105 def test_update_secret_bad_user_fails( @@ -370,6 +373,7 @@ class TestSecretServiceApi(SecretServiceTestHelpers): ) assert secret_response assert secret_response.status_code == 200 + assert secret_response.json assert secret_response.json['value'] == self.test_value def test_update_secret( @@ -378,7 +382,8 @@ class TestSecretServiceApi(SecretServiceTestHelpers): """Test_update_secret.""" user = self.find_or_create_user() self.add_test_secret(user) - secret = SecretService.get_secret(self.test_key) + secret: Optional[SecretModel] = SecretService.get_secret(self.test_key) + assert secret assert secret.value == self.test_value secret_model = SecretModel( key=self.test_key, value="new_secret_value", creator_user_id=user.id