diff options
| author | 2020-12-15 08:41:49 +0200 | |
|---|---|---|
| committer | 2020-12-15 08:41:49 +0200 | |
| commit | 13b031581763f080c2415ac2bd76e2ad40aeb8dc (patch) | |
| tree | 1cbfdd2219c56c4cf8f5a590ad2e72cf3b63bc75 /backend/models | |
| parent | Update route levels parsing to work in all platforms (diff) | |
| parent | Fix f-string referencing the wrong name (diff) | |
Merge pull request #29 from python-discord/testing-strategies
Refactor `create_route_map`
Diffstat (limited to 'backend/models')
| -rw-r--r-- | backend/models/form.py | 12 | ||||
| -rw-r--r-- | backend/models/form_response.py | 2 | ||||
| -rw-r--r-- | backend/models/question.py | 8 | 
3 files changed, 11 insertions, 11 deletions
| diff --git a/backend/models/form.py b/backend/models/form.py index 2cf8486..cb58065 100644 --- a/backend/models/form.py +++ b/backend/models/form.py @@ -12,8 +12,8 @@ class Form(BaseModel):      """Schema model for form."""      id: str = Field(alias="_id") -    features: t.List[str] -    questions: t.List[Question] +    features: list[str] +    questions: list[Question]      name: str      description: str @@ -21,12 +21,12 @@ class Form(BaseModel):          allow_population_by_field_name = True      @validator("features") -    def validate_features(cls, value: t.List[str]) -> t.Optional[t.List[str]]: +    def validate_features(cls, value: list[str]) -> t.Optional[list[str]]:          """Validates is all features in allowed list."""          # Uppercase everything to avoid mixed case in DB          value = [v.upper() for v in value] -        allowed_values = list(v.value for v in FormFeatures.__members__.values()) -        if not all(v in allowed_values for v in value): +        allowed_values = [v.value for v in FormFeatures.__members__.values()] +        if any(v not in allowed_values for v in value):              raise ValueError("Form features list contains one or more invalid values.")          if FormFeatures.COLLECT_EMAIL in value and FormFeatures.REQUIRES_LOGIN not in value:  # noqa @@ -34,7 +34,7 @@ class Form(BaseModel):          return value -    def dict(self, admin: bool = True, **kwargs: t.Dict) -> t.Dict[str, t.Any]: +    def dict(self, admin: bool = True, **kwargs: t.Any) -> dict[str, t.Any]:          """Wrapper for original function to exclude private data for public access."""          data = super().dict(**kwargs) diff --git a/backend/models/form_response.py b/backend/models/form_response.py index bea070f..f3296cd 100644 --- a/backend/models/form_response.py +++ b/backend/models/form_response.py @@ -12,7 +12,7 @@ class FormResponse(BaseModel):      id: str = Field(alias="_id")      user: t.Optional[DiscordUser]      antispam: t.Optional[AntiSpam] -    response: t.Dict[str, t.Any] +    response: dict[str, t.Any]      form_id: str      class Config: diff --git a/backend/models/question.py b/backend/models/question.py index 1a012ff..3b98024 100644 --- a/backend/models/question.py +++ b/backend/models/question.py @@ -11,7 +11,7 @@ class Question(BaseModel):      id: str = Field(alias="_id")      name: str      type: str -    data: t.Dict[str, t.Any] +    data: dict[str, t.Any]      class Config:          allow_population_by_field_name = True @@ -31,14 +31,14 @@ class Question(BaseModel):      @root_validator      def validate_question_data(              cls, -            value: t.Dict[str, t.Any] -    ) -> t.Optional[t.Dict[str, t.Any]]: +            value: dict[str, t.Any] +    ) -> t.Optional[dict[str, t.Any]]:          """Check does required data exists for question type and remove other data."""          # When question type don't need data, don't add anything to keep DB clean.          if value.get("type") not in REQUIRED_QUESTION_TYPE_DATA:              return value -        for key, data_type in REQUIRED_QUESTION_TYPE_DATA[value.get("type")].items(): +        for key, data_type in REQUIRED_QUESTION_TYPE_DATA[value["type"]].items():              if key not in value.get("data", {}):                  raise ValueError(f"Required question data key '{key}' not provided.") | 
