Skip to content

Commit

Permalink
Merge pull request #347 from waketzheng/add-mypy-check-to-ci
Browse files Browse the repository at this point in the history
Use mypy for type hint check in ci
  • Loading branch information
long2ice authored Jun 6, 2024
2 parents 13dd44b + 9e46fbf commit ed113d4
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 10 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ jobs:
steps:
- name: Start MySQL
run: sudo systemctl start mysql.service
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ style: deps _style
_check:
@black --check $(black_opts) $(checkfiles) || (echo "Please run 'make style' to auto-fix style issues" && false)
@ruff check $(checkfiles)
@mypy $(checkfiles)
@bandit -r aerich
check: deps _check

test: deps
Expand Down
2 changes: 1 addition & 1 deletion aerich/ddl/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def _add_or_modify_column(self, model, field_describe: dict, is_pk: bool, modify
self.schema_generator._column_comment_generator(
table=db_table,
column=db_column,
comment=field_describe.get("description"),
comment=description,
)
if description
else ""
Expand Down
2 changes: 1 addition & 1 deletion aerich/inspectdb/postgres.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ async def get_columns(self, table: str) -> List[Column]:
right join information_schema.columns c using (column_name, table_catalog, table_schema, table_name)
where c.table_catalog = $1
and c.table_name = $2
and c.table_schema = $3"""
and c.table_schema = $3""" # nosec:B608
ret = await self.conn.execute_query_dict(sql, [self.database, table, self.schema])
for row in ret:
columns.append(
Expand Down
4 changes: 2 additions & 2 deletions aerich/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import sys
from pathlib import Path
from types import ModuleType
from typing import Dict, Optional
from typing import Dict, Optional, Union

from click import BadOptionUsage, ClickException, Context
from tortoise import BaseDBAsyncClient, Tortoise
Expand Down Expand Up @@ -95,7 +95,7 @@ def is_default_function(string: str) -> Optional[re.Match]:
return re.match(r"^<function.+>$", str(string or ""))


def import_py_file(file: Path) -> ModuleType:
def import_py_file(file: Union[str, Path]) -> ModuleType:
module_name, file_ext = os.path.splitext(os.path.split(file)[-1])
spec = importlib.util.spec_from_file_location(module_name, file)
module = importlib.util.module_from_spec(spec) # type:ignore[arg-type]
Expand Down
12 changes: 7 additions & 5 deletions tests/test_migrate.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from pathlib import Path
from typing import List, cast

import pytest
import tortoise
Expand Down Expand Up @@ -792,13 +793,13 @@


def should_add_user_id_column_type_alter_sql() -> bool:
if tortoise.__version__ < "0.21":
return False
# tortoise-orm>=0.21 changes IntField constraints
# from {"ge": 1, "le": 2147483647} to {"ge": -2147483648,"le": 2147483647}
user_id_constraints = old_models_describe["models.Category"]["data_fields"][-1]["constraints"]
return (
tortoise.__version__ >= "0.21"
and tortoise.fields.data.IntField.constraints != user_id_constraints
)
data_fields = cast(List[dict], old_models_describe["models.Category"]["data_fields"])
user_id_constraints = data_fields[-1]["constraints"]
return tortoise.fields.data.IntField.constraints != user_id_constraints


def test_migrate(mocker: MockerFixture):
Expand All @@ -825,6 +826,7 @@ def test_migrate(mocker: MockerFixture):
if isinstance(Migrate.ddl, SqliteDDL):
with pytest.raises(NotSupportError):
Migrate.diff_models(old_models_describe, models_describe)
with pytest.raises(NotSupportError):
Migrate.diff_models(models_describe, old_models_describe, False)
else:
Migrate.diff_models(old_models_describe, models_describe)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from aerich.utils import import_py_file


def test_import_py_file():
def test_import_py_file() -> None:
m = import_py_file("aerich/utils.py")
assert getattr(m, "import_py_file")

0 comments on commit ed113d4

Please sign in to comment.