diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 265c65be..a884c6b7 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -15,6 +15,7 @@ jobs:
DB_DATABASE: database_app_test
DB_USERNAME: app
DB_PASSWORD: secret
+ POSTGRES_PORT: 15432
steps:
- uses: actions/checkout@v4
@@ -33,7 +34,7 @@ jobs:
# ── fastapi_startkit package ──────────────────────────────────────────
- name: Install dependencies (fastapi_startkit)
working-directory: fastapi_startkit
- run: uv sync --group dev --extra database --extra sqlite --extra fastapi --extra vite
+ run: uv sync --group dev --extra database --extra sqlite --extra fastapi --extra vite --extra postgres
- name: Run tests (fastapi_startkit)
working-directory: fastapi_startkit
diff --git a/bin/test.sh b/bin/test.sh
index c2286ba2..b04d9f4c 100755
--- a/bin/test.sh
+++ b/bin/test.sh
@@ -3,6 +3,13 @@ set -e
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+# ── Lint ──────────────────────────────────────────────────────────────────────
+echo "============================================================"
+echo " Running: ruff lint checks"
+echo "============================================================"
+(cd "$ROOT/fastapi_startkit" && uv run ruff format --check src/ tests/)
+(cd "$ROOT/fastapi_startkit" && uv run ruff check src/ tests/)
+
# ── Start MySQL via Docker Compose ────────────────────────────────────────────
echo "Starting test services..."
docker compose -f "$ROOT/docker-compose.yml" down --remove-orphans
@@ -14,6 +21,7 @@ trap 'echo "Stopping test services..."; docker compose -f "$ROOT/docker-compose.
# ── Common DB env vars (match docker-compose.test.yml) ───────────────────────
export DB_HOST=127.0.0.1
export DB_PORT=3306
+export POSTGRES_PORT=15432
export DB_DATABASE=database_app_test
export DB_USERNAME=app
export DB_PASSWORD=secret
diff --git a/docker-compose.yml b/docker-compose.yml
index d2920ab8..7c9f4ec4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -22,7 +22,7 @@ services:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
ports:
- - "5432:5432"
+ - "15432:5432"
healthcheck:
test: [ "CMD", "pg_isready", "-U", "app", "-d", "database_app_test" ]
interval: 5s
diff --git a/example/config-app/uv.lock b/example/config-app/uv.lock
index 3923cfba..8a3ed7e4 100644
--- a/example/config-app/uv.lock
+++ b/example/config-app/uv.lock
@@ -162,7 +162,7 @@ wheels = [
[[package]]
name = "fastapi-startkit"
-version = "0.25.0"
+version = "0.26.0"
source = { editable = "../../fastapi_startkit" }
dependencies = [
{ name = "cleo" },
diff --git a/example/database-app/uv.lock b/example/database-app/uv.lock
index bcd11761..4fe12172 100644
--- a/example/database-app/uv.lock
+++ b/example/database-app/uv.lock
@@ -498,7 +498,7 @@ wheels = [
[[package]]
name = "fastapi-startkit"
-version = "0.25.0"
+version = "0.26.0"
source = { editable = "../../fastapi_startkit" }
dependencies = [
{ name = "cleo" },
diff --git a/fastapi_startkit/pyproject.toml b/fastapi_startkit/pyproject.toml
index 625ad118..87b96944 100644
--- a/fastapi_startkit/pyproject.toml
+++ b/fastapi_startkit/pyproject.toml
@@ -55,6 +55,11 @@ dev = [
"ruff>=0.9.0",
"twine>=6.2.0",
"itsdangerous>=2.2.0",
+ "asyncpg>=0.29.0",
+ "aiosqlite>=0.22.1",
+ "aiomysql>=0.2.0",
+ "sqlalchemy[asyncio]>=2.0.38",
+ "fastapi[standard]>=0.124.4",
]
diff --git a/fastapi_startkit/src/fastapi_startkit/application.py b/fastapi_startkit/src/fastapi_startkit/application.py
index 1c0d8a7a..175aa753 100644
--- a/fastapi_startkit/src/fastapi_startkit/application.py
+++ b/fastapi_startkit/src/fastapi_startkit/application.py
@@ -74,9 +74,7 @@ def load_environment(self):
return self
def configure_exception_handler(self):
- self.exception_manager: ExceptionHandler = self._exception_handler_class(
- application=self
- )
+ self.exception_manager: ExceptionHandler = self._exception_handler_class(application=self)
self.exception_manager.register()
self.exception_manager.install()
self.bind("exception_manager", self.exception_manager)
@@ -163,9 +161,7 @@ def mount(self, path: str, app_instance: "FastAPI", **kwargs):
return self
# Add custom exception handlers
- def add_exception_handler(
- self, exc_class_or_status_code: Any, handler: Callable[..., Any]
- ):
+ def add_exception_handler(self, exc_class_or_status_code: Any, handler: Callable[..., Any]):
self._fastapi.add_exception_handler(exc_class_or_status_code, handler)
return self
@@ -175,9 +171,7 @@ def fastapi(self) -> "FastAPI":
try:
from fastapi import FastAPI
except ImportError:
- raise RuntimeError(
- "FastAPI is not installed. Install it with: pip install fastapi"
- )
+ raise RuntimeError("FastAPI is not installed. Install it with: pip install fastapi")
self._fastapi = FastAPI()
# Making the type hint work
assert self._fastapi is not None
diff --git a/fastapi_startkit/src/fastapi_startkit/collection/collection.py b/fastapi_startkit/src/fastapi_startkit/collection/collection.py
index 39385c88..84960a6a 100644
--- a/fastapi_startkit/src/fastapi_startkit/collection/collection.py
+++ b/fastapi_startkit/src/fastapi_startkit/collection/collection.py
@@ -276,9 +276,7 @@ def pluck(self, value, key=None, keep_nulls=True):
if k == value:
if key:
- attributes[self._data_get(item, key)] = self._data_get(
- item, value
- )
+ attributes[self._data_get(item, key)] = self._data_get(item, value)
else:
attributes.append(v)
diff --git a/fastapi_startkit/src/fastapi_startkit/config/app.py b/fastapi_startkit/src/fastapi_startkit/config/app.py
index 2bea07f8..a60bc631 100644
--- a/fastapi_startkit/src/fastapi_startkit/config/app.py
+++ b/fastapi_startkit/src/fastapi_startkit/config/app.py
@@ -5,9 +5,7 @@
@dataclass
class AppConfig:
- name: str = field(
- default_factory=lambda: os.getenv("APP_NAME", "FastAPI starter kit")
- )
+ name: str = field(default_factory=lambda: os.getenv("APP_NAME", "FastAPI starter kit"))
env: str = field(default_factory=lambda: os.getenv("APP_ENV", "development"))
debug: bool = field(default_factory=lambda: env("APP_DEBUG", "true"))
timezone: str = field(default_factory=lambda: os.getenv("APP_TIMEZONE", "UTC"))
diff --git a/fastapi_startkit/src/fastapi_startkit/configuration/Configuration.py b/fastapi_startkit/src/fastapi_startkit/configuration/Configuration.py
index ebf8d42a..849efb39 100644
--- a/fastapi_startkit/src/fastapi_startkit/configuration/Configuration.py
+++ b/fastapi_startkit/src/fastapi_startkit/configuration/Configuration.py
@@ -26,9 +26,7 @@ def __init__(self, application):
def load(self):
"""At boot load configuration from all files and store them in here."""
config_root = self.application.make("config.location")
- for module_name, module in (
- Loader().get_modules(config_root, raise_exception=True).items()
- ):
+ for module_name, module in Loader().get_modules(config_root, raise_exception=True).items():
params = Loader().get_parameters(module)
for name, value in params.items():
self._config[f"{module_name}.{name.lower()}"] = value
@@ -42,9 +40,7 @@ def merge_with(self, path, external_config):
(such as 'application').
"""
if path in self.reserved_keys:
- raise InvalidConfigurationSetup(
- f"{path} is a reserved configuration key name. Please use an other key."
- )
+ raise InvalidConfigurationSetup(f"{path} is a reserved configuration key name. Please use an other key.")
if isinstance(external_config, str):
# config is a path and should be loaded
params = Loader().get_parameters(external_config)
diff --git a/fastapi_startkit/src/fastapi_startkit/console/__init__.py b/fastapi_startkit/src/fastapi_startkit/console/__init__.py
index c98daee3..75bd83da 100644
--- a/fastapi_startkit/src/fastapi_startkit/console/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/console/__init__.py
@@ -1,7 +1,4 @@
from .application import ConsoleApplication
from .command import Command
-__all__ = [
- "ConsoleApplication",
- "Command"
-]
+__all__ = ["ConsoleApplication", "Command"]
diff --git a/fastapi_startkit/src/fastapi_startkit/console/publish_command.py b/fastapi_startkit/src/fastapi_startkit/console/publish_command.py
index 928e0516..736bdaa4 100644
--- a/fastapi_startkit/src/fastapi_startkit/console/publish_command.py
+++ b/fastapi_startkit/src/fastapi_startkit/console/publish_command.py
@@ -37,9 +37,7 @@ def handle(self):
if provider_arg:
target = Str.slugify(provider_arg)
resources = {
- name: files
- for name, files in application.published_resources.items()
- if Str.slugify(name) == target
+ name: files for name, files in application.published_resources.items() if Str.slugify(name) == target
}
if not resources:
self.line(f"No provider found matching '{provider_arg}'.")
diff --git a/fastapi_startkit/src/fastapi_startkit/container/container.py b/fastapi_startkit/src/fastapi_startkit/container/container.py
index 8268b8be..c3549b27 100644
--- a/fastapi_startkit/src/fastapi_startkit/container/container.py
+++ b/fastapi_startkit/src/fastapi_startkit/container/container.py
@@ -54,14 +54,10 @@ def bind(self, name, class_obj):
"""
if inspect.ismodule(class_obj):
raise StrictContainerException(
- "Cannot bind module '{}' with key '{}' into the container".format(
- class_obj, name
- )
+ "Cannot bind module '{}' with key '{}' into the container".format(class_obj, name)
)
if self.strict and name in self.objects:
- raise StrictContainerException(
- "You cannot override a key inside a strict container"
- )
+ raise StrictContainerException("You cannot override a key inside a strict container")
if self.override or name not in self.objects:
self.fire_hook("bind", name, class_obj)
@@ -145,9 +141,7 @@ def make(self, name, *arguments):
obj = self.resolve(name, *arguments)
return obj
- raise MissingContainerBindingNotFound(
- "{0} key was not found in the container".format(name)
- )
+ raise MissingContainerBindingNotFound("{0} key was not found in the container".format(name))
def has(self, name):
"""Check if a key exists in the container.
@@ -200,14 +194,9 @@ def resolve(self, obj, *resolving_arguments):
self.remember
and not passing_arguments
and inspect.ismethod(obj)
- and "{}.{}.{}".format(
- obj.__module__, obj.__self__.__class__.__name__, obj.__name__
- )
- in self._remembered
+ and "{}.{}.{}".format(obj.__module__, obj.__self__.__class__.__name__, obj.__name__) in self._remembered
):
- location = "{}.{}.{}".format(
- obj.__module__, obj.__self__.__class__.__name__, obj.__name__
- )
+ location = "{}.{}.{}".format(obj.__module__, obj.__self__.__class__.__name__, obj.__name__)
objects = self._remembered[location]
try:
return obj(*objects)
@@ -271,9 +260,7 @@ def resolve(self, obj, *resolving_arguments):
if not inspect.ismethod(obj):
self._remembered[obj] = objects
else:
- signature = "{}.{}.{}".format(
- obj.__module__, obj.__self__.__class__.__name__, obj.__name__
- )
+ signature = "{}.{}.{}".format(obj.__module__, obj.__self__.__class__.__name__, obj.__name__)
self._remembered[signature] = objects
return obj(*objects)
@@ -305,20 +292,15 @@ def collect(self, search):
providers.update({key: value})
elif "*" in search:
split_search = search.split("*")
- if key.startswith(split_search[0]) and key.endswith(
- split_search[1]
- ):
+ if key.startswith(split_search[0]) and key.endswith(split_search[1]):
providers.update({key: value})
else:
- raise AttributeError(
- "There is no '*' in your collection search"
- )
+ raise AttributeError("There is no '*' in your collection search")
else:
for provider_key, provider_class in self.objects.items():
- if (
- inspect.isclass(provider_class)
- and issubclass(provider_class, search)
- ) or isinstance(provider_class, search):
+ if (inspect.isclass(provider_class) and issubclass(provider_class, search)) or isinstance(
+ provider_class, search
+ ):
providers.update({provider_key: provider_class})
return providers
@@ -344,10 +326,7 @@ def _find_annotated_parameter(self, parameter):
return obj
for _, provider_class in self.objects.items():
- if (
- parameter.annotation == provider_class
- or parameter.annotation == provider_class.__class__
- ):
+ if parameter.annotation == provider_class or parameter.annotation == provider_class.__class__:
obj = provider_class
self.fire_hook("resolve", parameter, obj)
@@ -362,9 +341,7 @@ def _find_annotated_parameter(self, parameter):
return obj
raise ContainerError(
- "The dependency with the {0} annotation could not be resolved by the container".format(
- parameter
- )
+ "The dependency with the {0} annotation could not be resolved by the container".format(parameter)
)
def get_parameters(self, obj):
@@ -392,9 +369,7 @@ def _find_parameter(self, keyword):
return keyword.default
raise ContainerError(
- "The parameter dependency with the key of {0} could not be found in the container".format(
- parameter
- )
+ "The parameter dependency with the key of {0} could not be found in the container".format(parameter)
)
def on_bind(self, key, obj):
@@ -503,9 +478,7 @@ def _find_obj(self, obj):
return return_obj
raise MissingContainerBindingNotFound(
- "The dependency with the {0} annotation could not be resolved by the container".format(
- obj
- )
+ "The dependency with the {0} annotation could not be resolved by the container".format(obj)
)
def __contains__(self, obj):
diff --git a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py
index d0036aa6..43aefb4a 100644
--- a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py
+++ b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py
@@ -31,9 +31,7 @@ def handle(self, exception):
response = self.application.make("response")
request = self.application.make("request")
- self.application.make("event").fire(
- f"masonite.exception.{exception.__class__.__name__}", exception
- )
+ self.application.make("event").fire(f"masonite.exception.{exception.__class__.__name__}", exception)
# add headers to response if any
if hasattr(exception, "get_headers"):
@@ -47,17 +45,13 @@ def handle(self, exception):
response.with_headers(headers)
if self.application.has(f"{exception.__class__.__name__}Handler"):
- return self.application.make(
- f"{exception.__class__.__name__}Handler"
- ).handle(exception)
+ return self.application.make(f"{exception.__class__.__name__}Handler").handle(exception)
# handle exception in production
if not self.application.is_debug():
# for HTTP error codes (500, 404, 403...) a specific page should be displayed
# if a renderable exception is raised let it be displayed
- if hasattr(exception, "is_http_exception") or hasattr(
- exception, "get_response"
- ):
+ if hasattr(exception, "is_http_exception") or hasattr(exception, "get_response"):
return self.application.make("HttpExceptionHandler").handle(exception)
# else fallback to an unknown exception that should be displayed as a 500 error
diff --git a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py
index 1c686cbb..3a75182b 100644
--- a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py
+++ b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py
@@ -37,9 +37,7 @@ class DumpExceptionHandler:
def __init__(self, application):
self.application = application
- self.assets_path = os.path.join(
- get_module_dir(__file__), "../../templates/assets"
- )
+ self.assets_path = os.path.join(get_module_dir(__file__), "../../templates/assets")
self.styles = []
self.scripts = []
diff --git a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py
index e88bd22c..a6f57385 100644
--- a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py
+++ b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py
@@ -18,9 +18,7 @@ def handle(self, exception):
# Renders HTTP exception as HTML with predefined error page if exists
if self.application.make("view").exists(view_name):
return response.view(
- self.application.make("view").render(
- f"errors/{status_code}", {"message": exception.get_response()}
- ),
+ self.application.make("view").render(f"errors/{status_code}", {"message": exception.get_response()}),
status_code,
)
else:
diff --git a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py
index 7d6880eb..68d53106 100644
--- a/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py
+++ b/fastapi_startkit/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py
@@ -6,8 +6,6 @@ def __init__(self, application):
self.application = application
def handle(self, exception):
- masonite_exception = ModelNotFoundException(
- "No record found with the given primary key"
- )
+ masonite_exception = ModelNotFoundException("No record found with the given primary key")
self.application.make("response").status(404)
self.application.make("exception_handler").handle(masonite_exception)
diff --git a/fastapi_startkit/src/fastapi_startkit/exceptions/handler.py b/fastapi_startkit/src/fastapi_startkit/exceptions/handler.py
index f7ae5ee6..0f3132c5 100644
--- a/fastapi_startkit/src/fastapi_startkit/exceptions/handler.py
+++ b/fastapi_startkit/src/fastapi_startkit/exceptions/handler.py
@@ -3,7 +3,6 @@
from typing import Any, Callable, Dict, List, Optional, Type
-
class ExceptionHandler:
def __init__(self, application=None):
self.app = application
@@ -74,11 +73,7 @@ def _build_context(self, exception: Exception) -> str:
context = f"{type(exception).__name__}: {exception}"
if self.app and self.app.is_debug():
- context += "\n" + "".join(
- traceback.format_exception(
- type(exception), exception, exception.__traceback__
- )
- )
+ context += "\n" + "".join(traceback.format_exception(type(exception), exception, exception.__traceback__))
return context
async def handle(self, exception: Exception, context: Optional[Dict] = None) -> Any:
diff --git a/fastapi_startkit/src/fastapi_startkit/facades/Hash.pyi b/fastapi_startkit/src/fastapi_startkit/facades/Hash.pyi
index 55d74729..fca84bab 100644
--- a/fastapi_startkit/src/fastapi_startkit/facades/Hash.pyi
+++ b/fastapi_startkit/src/fastapi_startkit/facades/Hash.pyi
@@ -20,9 +20,7 @@ class Hash:
) -> bool:
"""Verify that a given string matches its hashed version (based on configured hashing protocol)."""
...
- def needs_rehash(
- hashed_string: str, options: dict = {}, driver: str = None
- ) -> bool:
+ def needs_rehash(hashed_string: str, options: dict = {}, driver: str = None) -> bool:
"""Verify that a given hash needs to be hashed again because parameters for generating
the hash have changed."""
...
diff --git a/fastapi_startkit/src/fastapi_startkit/facades/Loader.pyi b/fastapi_startkit/src/fastapi_startkit/facades/Loader.pyi
index 04aa5661..7ce200ed 100644
--- a/fastapi_startkit/src/fastapi_startkit/facades/Loader.pyi
+++ b/fastapi_startkit/src/fastapi_startkit/facades/Loader.pyi
@@ -10,12 +10,8 @@ class Loader:
class_name: str,
raise_exception: bool = False,
) -> "None|Any": ...
- def find_all(
- class_instance: Any, paths: list, raise_exception: bool = False
- ) -> dict: ...
- def get_object(
- path_or_module: "str|Any", object_name: str, raise_exception: bool = False
- ) -> Any:
+ def find_all(class_instance: Any, paths: list, raise_exception: bool = False) -> dict: ...
+ def get_object(path_or_module: "str|Any", object_name: str, raise_exception: bool = False) -> Any:
"""Load the given object from a Python module located at path and returns a default value if
not found. If no object name is provided, returns the loaded module."""
...
diff --git a/fastapi_startkit/src/fastapi_startkit/facades/RateLimiter.pyi b/fastapi_startkit/src/fastapi_startkit/facades/RateLimiter.pyi
index 9b9609ce..0858415c 100644
--- a/fastapi_startkit/src/fastapi_startkit/facades/RateLimiter.pyi
+++ b/fastapi_startkit/src/fastapi_startkit/facades/RateLimiter.pyi
@@ -15,9 +15,7 @@ class RateLimiter:
def get_limiter(self, name: str) -> "Limiter":
"""Get rate limiter registered with the given name."""
...
- def attempt(
- key: str, callback: Callable, max_attempts: int, delay: int = 60
- ) -> Any:
+ def attempt(key: str, callback: Callable, max_attempts: int, delay: int = 60) -> Any:
"""Try to execute the given callback if not limited by the 'key' rate limiter."""
...
def too_many_attempts(self, key: str, max_attempts: int) -> bool:
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/commands/serve_command.py b/fastapi_startkit/src/fastapi_startkit/fastapi/commands/serve_command.py
index d24f9e69..be268cd5 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/commands/serve_command.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/commands/serve_command.py
@@ -75,9 +75,7 @@ def handle(self):
if cfg_reload_excludes is not None:
kwargs["reload_excludes"] = cfg_reload_excludes
- self.line(
- f"Starting Uvicorn server on {host}:{port} [{app}]..."
- )
+ self.line(f"Starting Uvicorn server on {host}:{port} [{app}]...")
else:
self.line(f"Starting Uvicorn server on {host}:{port}...")
@@ -101,8 +99,6 @@ def is_app_exist(self) -> "bool":
except (ImportError, ValueError):
pass
- self.line(
- "Unable to detect the application, run the command with --app={app}>"
- )
+ self.line("Unable to detect the application, run the command with --app={app}>")
return False
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/exceptions.py b/fastapi_startkit/src/fastapi_startkit/fastapi/exceptions.py
index 0a5cd54b..320d4aba 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/exceptions.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/exceptions.py
@@ -17,10 +17,7 @@ async def render(self, request, exc):
"exception": f"{type(exc).__module__}.{type(exc).__qualname__}",
"file": frames[-1].filename if frames else None,
"line": frames[-1].lineno if frames else None,
- "trace": [
- {"file": f.filename, "line": f.lineno, "function": f.name}
- for f in frames
- ],
+ "trace": [{"file": f.filename, "line": f.lineno, "function": f.name} for f in frames],
}
else:
content = {"message": "Server Error"}
@@ -44,10 +41,7 @@ async def render(self, request, exc):
accept = request.headers.get("accept", "")
content_type = request.headers.get("content-type", "")
- wants_json = (
- "application/json" in accept
- or content_type.startswith("application/json")
- )
+ wants_json = "application/json" in accept or content_type.startswith("application/json")
errors = {}
for err in exc.errors():
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/providers/fastapi_provider.py b/fastapi_startkit/src/fastapi_startkit/fastapi/providers/fastapi_provider.py
index 79eadab5..8639e782 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/providers/fastapi_provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/providers/fastapi_provider.py
@@ -27,9 +27,7 @@ def boot(self):
self.commands([ServeCommand])
self._register_exception_handlers()
- source = os.path.abspath(
- os.path.join(os.path.dirname(__file__), "../config/fastapi.py")
- )
+ source = os.path.abspath(os.path.join(os.path.dirname(__file__), "../config/fastapi.py"))
self.publishes({source: "config/fastapi.py"})
def _register_exception_handlers(self):
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/routers/router.py b/fastapi_startkit/src/fastapi_startkit/fastapi/routers/router.py
index 741da5fb..e5e9a187 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/routers/router.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/routers/router.py
@@ -78,39 +78,25 @@ def _add_route(
**kwargs,
)
- def get(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def get(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["GET"], **kwargs)
- def post(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def post(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["POST"], **kwargs)
- def put(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def put(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["PUT"], **kwargs)
- def patch(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def patch(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["PATCH"], **kwargs)
- def delete(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def delete(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["DELETE"], **kwargs)
- def head(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def head(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["HEAD"], **kwargs)
- def options(
- self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]
- ) -> None:
+ def options(self, path: str, endpoint: Callable[..., Any], **kwargs: Unpack[RouteOptions]) -> None:
self._add_route(path, endpoint, ["OPTIONS"], **kwargs)
def resource(
@@ -154,9 +140,7 @@ def fn(method: str) -> Callable[..., Any]:
)
if include("store") and hasattr(controller, "store"):
- self.post(
- f"/{name}", fn("store"), name=route_name("store", f"{name}.store")
- )
+ self.post(f"/{name}", fn("store"), name=route_name("store", f"{name}.store"))
if include("show") and hasattr(controller, "show"):
self.get(
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/testing/__init__.py b/fastapi_startkit/src/fastapi_startkit/fastapi/testing/__init__.py
index 48fec2e7..a0c62bc7 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/testing/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/testing/__init__.py
@@ -1,5 +1,3 @@
from fastapi_startkit.fastapi.testing.test_case import HttpTestCase
-__all__= [
- 'HttpTestCase'
-]
+__all__ = ["HttpTestCase"]
diff --git a/fastapi_startkit/src/fastapi_startkit/fastapi/testing/test_case.py b/fastapi_startkit/src/fastapi_startkit/fastapi/testing/test_case.py
index 22478a29..782b22be 100644
--- a/fastapi_startkit/src/fastapi_startkit/fastapi/testing/test_case.py
+++ b/fastapi_startkit/src/fastapi_startkit/fastapi/testing/test_case.py
@@ -28,4 +28,4 @@ async def put(self, url, **kwargs):
return await self.client.put(url, **kwargs)
async def delete(self, url, **kwargs):
- return await self.client.delete(url, **kwargs)
\ No newline at end of file
+ return await self.client.delete(url, **kwargs)
diff --git a/fastapi_startkit/src/fastapi_startkit/helpers/app.py b/fastapi_startkit/src/fastapi_startkit/helpers/app.py
index f4c6c455..df9f1ae5 100644
--- a/fastapi_startkit/src/fastapi_startkit/helpers/app.py
+++ b/fastapi_startkit/src/fastapi_startkit/helpers/app.py
@@ -1,9 +1,12 @@
def storage_path(path: str = "") -> str:
"""Get the path to the storage directory."""
from fastapi_startkit.application import app
+
return app().storage_path(path)
+
def public_path(path: str = "") -> str:
"""Get the path to the public directory."""
from fastapi_startkit.application import app
+
return app().public_path(path)
diff --git a/fastapi_startkit/src/fastapi_startkit/helpers/dataclass.py b/fastapi_startkit/src/fastapi_startkit/helpers/dataclass.py
index 54a71b11..742b7965 100644
--- a/fastapi_startkit/src/fastapi_startkit/helpers/dataclass.py
+++ b/fastapi_startkit/src/fastapi_startkit/helpers/dataclass.py
@@ -9,10 +9,7 @@ def to_dict(obj: Any):
if hasattr(obj, "model_dump") and callable(obj.model_dump):
return obj.model_dump()
if dataclasses.is_dataclass(obj):
- return {
- f.name: Dataclass.to_dict(getattr(obj, f.name))
- for f in dataclasses.fields(obj)
- }
+ return {f.name: Dataclass.to_dict(getattr(obj, f.name)) for f in dataclasses.fields(obj)}
if isinstance(obj, dict):
return {k: Dataclass.to_dict(v) for k, v in obj.items()}
if isinstance(obj, (list, tuple)):
diff --git a/fastapi_startkit/src/fastapi_startkit/inertia/context.py b/fastapi_startkit/src/fastapi_startkit/inertia/context.py
index 7f52ffa3..f9c5218e 100644
--- a/fastapi_startkit/src/fastapi_startkit/inertia/context.py
+++ b/fastapi_startkit/src/fastapi_startkit/inertia/context.py
@@ -5,6 +5,4 @@
# Set by InertiaMiddleware before calling the next handler so InertiaResponse
# can access the current request without it being passed explicitly.
-current_request: ContextVar[Optional[Request]] = ContextVar(
- "inertia_request", default=None
-)
+current_request: ContextVar[Optional[Request]] = ContextVar("inertia_request", default=None)
diff --git a/fastapi_startkit/src/fastapi_startkit/inertia/inertia.py b/fastapi_startkit/src/fastapi_startkit/inertia/inertia.py
index c0b7c57a..0c97ef1e 100644
--- a/fastapi_startkit/src/fastapi_startkit/inertia/inertia.py
+++ b/fastapi_startkit/src/fastapi_startkit/inertia/inertia.py
@@ -63,9 +63,7 @@ def __init__(
self.root_view = root_view
self.version = version
- def with_(
- self, key: Union[str, Dict[str, Any]], value: Any = None
- ) -> "InertiaResponse":
+ def with_(self, key: Union[str, Dict[str, Any]], value: Any = None) -> "InertiaResponse":
if isinstance(key, dict):
self.props = {**self.props, **key}
else:
@@ -125,9 +123,7 @@ async def to_response(self, request: Request):
from fastapi_startkit.application import app as container
if not container().has("templates"):
- raise RuntimeError(
- "Inertia requires 'templates' to be bound in the container for initial rendering."
- )
+ raise RuntimeError("Inertia requires 'templates' to be bound in the container for initial rendering.")
return (
container()
@@ -187,7 +183,5 @@ def optional(callback) -> OptionalProp:
return OptionalProp(callback)
@staticmethod
- def render(
- component: str, props: Optional[Dict[str, Any]] = None
- ) -> InertiaResponse:
+ def render(component: str, props: Optional[Dict[str, Any]] = None) -> InertiaResponse:
return Inertia.instance().render(component, props or {})
diff --git a/fastapi_startkit/src/fastapi_startkit/inertia/middleware.py b/fastapi_startkit/src/fastapi_startkit/inertia/middleware.py
index 52e9bb8d..ee86459c 100644
--- a/fastapi_startkit/src/fastapi_startkit/inertia/middleware.py
+++ b/fastapi_startkit/src/fastapi_startkit/inertia/middleware.py
@@ -33,9 +33,7 @@ def root_view(cls, request: Request) -> str:
"""Return the root template name for the first page visit."""
return cls._root_view
- async def dispatch(
- self, request: Request, call_next: RequestResponseEndpoint
- ) -> Response:
+ async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
Inertia.version(lambda: self.version(request))
Inertia.share(self.share(request))
Inertia.set_root_view(self.root_view(request))
@@ -56,9 +54,7 @@ async def dispatch(
return response
# Version conflict — ask client to do a full page reload
- if request.method == "GET" and request.headers.get(
- Header.INERTIA_VERSION, ""
- ) != (Inertia.get_version() or ""):
+ if request.method == "GET" and request.headers.get(Header.INERTIA_VERSION, "") != (Inertia.get_version() or ""):
return self.on_version_change(request, response)
# 302 → 303 for PUT/PATCH/DELETE so browser issues a GET
diff --git a/fastapi_startkit/src/fastapi_startkit/inertia/provider.py b/fastapi_startkit/src/fastapi_startkit/inertia/provider.py
index 6c10332e..fe2f8b11 100644
--- a/fastapi_startkit/src/fastapi_startkit/inertia/provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/inertia/provider.py
@@ -25,4 +25,3 @@ def inertia_helper(page):
templates.env.globals["inertia"] = inertia_helper
templates.env.globals["Inertia"] = self.app.make("inertia")
-
diff --git a/fastapi_startkit/src/fastapi_startkit/loader/Loader.py b/fastapi_startkit/src/fastapi_startkit/loader/Loader.py
index a292a6f1..c243b3cd 100644
--- a/fastapi_startkit/src/fastapi_startkit/loader/Loader.py
+++ b/fastapi_startkit/src/fastapi_startkit/loader/Loader.py
@@ -33,9 +33,7 @@ def find(self, class_instance, paths, class_name, raise_exception=False):
if name == class_name:
return obj
if raise_exception:
- raise LoaderNotFound(
- f"No {class_instance} named {class_name} has been found in {paths}"
- )
+ raise LoaderNotFound(f"No {class_instance} named {class_name} has been found in {paths}")
return None
def find_all(self, class_instance, paths, raise_exception=False):
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/channels/DailyChannel.py b/fastapi_startkit/src/fastapi_startkit/logging/channels/DailyChannel.py
index 988e3079..a263ab2e 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/channels/DailyChannel.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/channels/DailyChannel.py
@@ -11,9 +11,9 @@ def __init__(self, driver=None, path=None):
path = os.path.join(path, self.get_time().to_date_string() + ".log")
self.max_level = Config.get("logging.channels.daily.level")
make_directory(path)
- self.driver = DriverFactory.make(
- driver or Config.get("logging.channels.daily.driver")
- )(path=path, max_level=self.max_level)
+ self.driver = DriverFactory.make(driver or Config.get("logging.channels.daily.driver"))(
+ path=path, max_level=self.max_level
+ )
def debug(self, message, *args, **kwargs):
return self.driver.debug(message, *args, **kwargs)
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/channels/SingleChannel.py b/fastapi_startkit/src/fastapi_startkit/logging/channels/SingleChannel.py
index a45e366f..69b9513c 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/channels/SingleChannel.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/channels/SingleChannel.py
@@ -9,6 +9,6 @@ def __init__(self, driver=None, path=None):
path = path or Config.get("logging.channels.single.path")
make_directory(path)
self.max_level = Config.get("logging.channels.single.level")
- self.driver = DriverFactory.make(
- driver or Config.get("logging.channels.single.driver")
- )(path=path, max_level=self.max_level)
+ self.driver = DriverFactory.make(driver or Config.get("logging.channels.single.driver"))(
+ path=path, max_level=self.max_level
+ )
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/channels/SlackChannel.py b/fastapi_startkit/src/fastapi_startkit/logging/channels/SlackChannel.py
index 3adb0151..c329a663 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/channels/SlackChannel.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/channels/SlackChannel.py
@@ -12,9 +12,9 @@ def __init__(self, driver=None, path=None):
emoji = Config.get("logging.channels.slack.emoji")
username = Config.get("logging.channels.slack.username")
self.max_level = Config.get("logging.channels.slack.level")
- self.driver = DriverFactory.make(
- driver or Config.get("logging.channels.slack.driver")
- )(emoji=emoji, username=username, token=token, channel=channel)
+ self.driver = DriverFactory.make(driver or Config.get("logging.channels.slack.driver"))(
+ emoji=emoji, username=username, token=token, channel=channel
+ )
def debug(self, message, *args, **kwargs):
return self.driver.debug(message, *args, **kwargs)
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/channels/SyslogChannel.py b/fastapi_startkit/src/fastapi_startkit/logging/channels/SyslogChannel.py
index a9a1eeb5..a20c1a7d 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/channels/SyslogChannel.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/channels/SyslogChannel.py
@@ -9,6 +9,6 @@ def __init__(self, driver=None, path=None):
path = path or Config.get("logging.channels.syslog.path")
make_directory(path)
self.max_level = Config.get("logging.channels.syslog.level")
- self.driver = DriverFactory.make(
- driver or Config.get("logging.channels.syslog.driver")
- )(path=path, max_level=self.max_level)
+ self.driver = DriverFactory.make(driver or Config.get("logging.channels.syslog.driver"))(
+ path=path, max_level=self.max_level
+ )
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/channels/TerminalChannel.py b/fastapi_startkit/src/fastapi_startkit/logging/channels/TerminalChannel.py
index 8e20d69e..40fa5ea7 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/channels/TerminalChannel.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/channels/TerminalChannel.py
@@ -1,4 +1,3 @@
-
from fastapi_startkit.facades import Config
from ..factory import DriverFactory
@@ -8,6 +7,6 @@
class TerminalChannel(BaseChannel):
def __init__(self, driver=None, path=None):
self.max_level = Config.get("logging.channels.terminal.level", "debug")
- self.driver = DriverFactory.make(
- driver or Config.get("logging.channels.terminal.driver")
- )(path=path, max_level=self.max_level)
+ self.driver = DriverFactory.make(driver or Config.get("logging.channels.terminal.driver"))(
+ path=path, max_level=self.max_level
+ )
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/config/logging.py b/fastapi_startkit/src/fastapi_startkit/logging/config/logging.py
index 3bfc57e6..553a7426 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/config/logging.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/config/logging.py
@@ -6,9 +6,7 @@
@dataclasses.dataclass
class LoggingConfig:
- default: str = dataclasses.field(
- default_factory=lambda: env("LOG_CHANNEL", "stack")
- )
+ default: str = dataclasses.field(default_factory=lambda: env("LOG_CHANNEL", "stack"))
channels: dict = dataclasses.field(
default_factory=lambda: {
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSingleDriver.py b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSingleDriver.py
index bb6bfb72..3490b272 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSingleDriver.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSingleDriver.py
@@ -9,11 +9,7 @@ def __init__(self, *args, **kwargs):
self.log = logging.getLogger("root")
handler = logging.FileHandler(self.path, "a")
- formatter = logging.Formatter(
- "{} - %(levelname)s - %(message)s".format(
- self.get_time().to_datetime_string()
- )
- )
+ formatter = logging.Formatter("{} - %(levelname)s - %(message)s".format(self.get_time().to_datetime_string()))
handler.setFormatter(formatter)
self.log.addHandler(handler)
@@ -31,70 +27,40 @@ def change_format(self, changed_format):
def emergency(self, message, *args, **kwargs):
self.log.setLevel(logging.CRITICAL)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "EMERGENCY"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "EMERGENCY"))
return self.log.critical(message)
def alert(self, message, *args, **kwargs):
self.log.setLevel(logging.CRITICAL)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "ALERT"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "ALERT"))
return self.log.critical(message)
def critical(self, message, *args, **kwargs):
self.log.setLevel(logging.CRITICAL)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "CRITICAL"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "CRITICAL"))
return self.log.critical(message)
def error(self, message, *args, **kwargs):
self.log.setLevel(logging.ERROR)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "ERROR"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "ERROR"))
return self.log.error(message)
def warning(self, message, *args, **kwargs):
self.log.setLevel(logging.WARNING)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "WARNING"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "WARNING"))
return self.log.warning(message)
def notice(self, message, *args, **kwargs):
self.log.setLevel(logging.INFO)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "NOTICE"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "NOTICE"))
return self.log.info(message)
def info(self, message, *args, **kwargs):
self.log.setLevel(logging.INFO)
- self.change_format(
- "{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "INFO")
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "INFO"))
return self.log.info(message)
def debug(self, message, *args, **kwargs):
self.log.setLevel(logging.DEBUG)
- self.change_format(
- "{} - {} - %(message)s".format(
- self.get_time().to_datetime_string(), "DEBUG"
- )
- )
+ self.change_format("{} - {} - %(message)s".format(self.get_time().to_datetime_string(), "DEBUG"))
return self.log.debug(message)
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSlackDriver.py b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSlackDriver.py
index 257b9f3e..3d01b590 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSlackDriver.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSlackDriver.py
@@ -66,9 +66,7 @@ def find_channel(self, name):
Returns:
self
"""
- response = requests.post(
- "https://slack.com/api/channels.list", {"token": self.token}
- )
+ response = requests.post("https://slack.com/api/channels.list", {"token": self.token})
for channel in response.json()["channels"]:
if channel["name"] == name.split("#")[1]:
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py
index a814065f..afb5d387 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py
@@ -10,11 +10,7 @@ def __init__(self, *args, **kwargs):
handler = logging.handlers.SysLogHandler(address=path)
- formatter = logging.Formatter(
- "{} - %(levelname)s - %(message)s".format(
- self.get_time().to_datetime_string()
- )
- )
+ formatter = logging.Formatter("{} - %(levelname)s - %(message)s".format(self.get_time().to_datetime_string()))
handler.setFormatter(formatter)
self.log.addHandler(handler)
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/listeners.py b/fastapi_startkit/src/fastapi_startkit/logging/listeners.py
index 97bdd2c5..77c72517 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/listeners.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/listeners.py
@@ -8,6 +8,4 @@ def __init__(self, logger: Logger):
self.logger = logger
def handle(self, exception, file, line):
- self.logger.error(
- "{} in {} on line {}".format(exception.__class__.__name__, file, line)
- )
+ self.logger.error("{} in {} on line {}".format(exception.__class__.__name__, file, line))
diff --git a/fastapi_startkit/src/fastapi_startkit/logging/providers/log_provider.py b/fastapi_startkit/src/fastapi_startkit/logging/providers/log_provider.py
index 94e531cf..338f5039 100644
--- a/fastapi_startkit/src/fastapi_startkit/logging/providers/log_provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/logging/providers/log_provider.py
@@ -20,13 +20,7 @@ def register(self):
self.app.bind("LoggingManager", LoggingManager(ChannelFactory, DriverFactory))
def boot(self):
- self.publishes(
- {
- Path(__file__)
- .resolve()
- .parent.parent.joinpath("config/logging.py"): "config/logging.py"
- }
- )
+ self.publishes({Path(__file__).resolve().parent.parent.joinpath("config/logging.py"): "config/logging.py"})
config = self.app.make("config")
if not config.get("logging.default"):
return
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/config.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/config.py
index 2d6f2578..2a5228ff 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/config.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/config.py
@@ -16,15 +16,11 @@ def load_config(config_path=None):
os.environ["DB_CONFIG_PATH"] = selected_config_path
# format path as python module if needed
- selected_config_path = (
- selected_config_path.replace("/", ".").replace("\\", ".").rstrip(".py")
- )
+ selected_config_path = selected_config_path.replace("/", ".").replace("\\", ".").rstrip(".py")
config_module = pydoc.locate(selected_config_path)
if config_module is None:
- raise ConfigurationNotFound(
- f"ORM configuration file has not been found in {selected_config_path}"
- )
+ raise ConfigurationNotFound(f"ORM configuration file has not been found in {selected_config_path}")
return config_module
@@ -95,9 +91,7 @@ def db_url(database_url=None, prefix="", options={}, log_queries=False):
# lookup specified driver
driver = DRIVERS_MAP[url.scheme]
- port = (
- str(url.port) if url.port and driver in [DRIVERS_MAP["mssql"]] else url.port
- )
+ port = str(url.port) if url.port and driver in [DRIVERS_MAP["mssql"]] else url.port
# build final configuration
config = {
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py
index 83f24115..aed8fcdb 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py
@@ -11,9 +11,7 @@ def faker(self):
try:
from faker import Faker
except ImportError:
- raise ImportError(
- "Could not find the 'faker' library. Run 'pip install faker' to fix this."
- )
+ raise ImportError("Could not find the 'faker' library. Run 'pip install faker' to fix this.")
if not Factory._faker:
Factory._faker = Faker()
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py
index b6e0c4ab..3779ffcf 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py
@@ -98,9 +98,7 @@ def on(self, connection_key):
if connection_detail:
self._connection_driver = connection_detail.get("driver")
else:
- raise ConnectionNotRegistered(
- f"Could not find the '{connection_key}' connection details"
- )
+ raise ConnectionNotRegistered(f"Could not find the '{connection_key}' connection details")
self.connection_class = resolver._drivers.get(self._connection_driver)
@@ -186,18 +184,12 @@ async def table(self, table):
def get_connection_information(self):
return {
"host": self.connection_details.get(self.connection, {}).get("host"),
- "database": self.connection_details.get(self.connection, {}).get(
- "database"
- ),
+ "database": self.connection_details.get(self.connection, {}).get("database"),
"user": self.connection_details.get(self.connection, {}).get("user"),
"port": self.connection_details.get(self.connection, {}).get("port"),
- "password": self.connection_details.get(self.connection, {}).get(
- "password"
- ),
+ "password": self.connection_details.get(self.connection, {}).get("password"),
"prefix": self.connection_details.get(self.connection, {}).get("prefix"),
- "options": self.connection_details.get(self.connection, {}).get(
- "options", {}
- ),
+ "options": self.connection_details.get(self.connection, {}).get("options", {}),
"full_details": self.connection_details.get(self.connection),
}
@@ -208,9 +200,7 @@ async def new_connection(self):
# TODO: review
if not self._connection:
connection_details = self.get_connection_information().get("full_details")
- self._connection = self.connection_class(
- connection_details=connection_details, name=self.connection
- )
+ self._connection = self.connection_class(connection_details=connection_details, name=self.connection)
if hasattr(self._connection, "set_schema"):
self._connection.set_schema(self.schema)
await self._connection.make_connection()
@@ -235,9 +225,7 @@ async def has_column(self, table, column, query_only=False):
return bool(await (await self.new_connection()).query(sql, ()))
async def get_columns(self, table, dict=True):
- table = self.platform().get_current_schema(
- await self.new_connection(), table, schema=self.get_schema()
- )
+ table = self.platform().get_current_schema(await self.new_connection(), table, schema=self.get_schema())
result = {}
if dict:
for column in table.get_added_columns().items():
@@ -292,9 +280,7 @@ async def truncate(self, table, foreign_keys=False):
def get_schema(self):
"""Gets the schema set on the migration class"""
- return self.schema or self.get_connection_information().get("full_details").get(
- "schema"
- )
+ return self.schema or self.get_connection_information().get("full_details").get("schema")
async def get_all_tables(self):
"""Gets all tables in the database"""
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py
index c53df3d1..2b6ea510 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py
@@ -24,9 +24,7 @@ def on_remove(self, builder):
builder.remove_global_scope("_query_set_null_on_delete", action="delete")
def _where_null(self, builder):
- return builder.where_null(
- f"{builder.get_table_name()}.{self.deleted_at_column}"
- )
+ return builder.where_null(f"{builder.get_table_name()}.{self.deleted_at_column}")
def _with_trashed(self, model, builder):
builder.remove_global_scope("_where_null", action="select")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py
index 96e26b7c..30b4bee4 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py
@@ -7,9 +7,7 @@ class UUIDPrimaryKeyScope(BaseScope):
"""Global scope class to use UUID4 as primary key."""
def on_boot(self, builder):
- builder.set_global_scope(
- "_UUID_primary_key", self.set_uuid_create, action="insert"
- )
+ builder.set_global_scope("_UUID_primary_key", self.set_uuid_create, action="insert")
builder.set_global_scope(
"_UUID_primary_key",
self.set_bulk_uuid_create,
@@ -34,11 +32,7 @@ def generate_uuid(self, builder, uuid_version, bytes=False):
def build_uuid_pk(self, builder):
uuid_version = getattr(builder._model, "__uuid_version__", 4)
uuid_bytes = getattr(builder._model, "__uuid_bytes__", False)
- return {
- builder._model.__primary_key__: self.generate_uuid(
- builder, uuid_version, uuid_bytes
- )
- }
+ return {builder._model.__primary_key__: self.generate_uuid(builder, uuid_version, uuid_bytes)}
def set_uuid_create(self, builder):
# if there is already a primary key, no need to set a new one
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py
index 7ca3a9db..b3035306 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py
@@ -25,205 +25,131 @@ def setUp(self):
def test_can_compile_select(self):
to_sql = self.builder.to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_order_by_and_first(self):
to_sql = self.builder.order_by("id", "asc").first(query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_columns(self):
to_sql = self.builder.select("username", "password").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_where(self):
to_sql = self.builder.select("username", "password").where("id", 1).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_or_where(self):
to_sql = self.builder.where("name", 2).or_where("name", 3).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_grouped_where(self):
- to_sql = self.builder.where(
- lambda query: query.where("age", 2).where("name", "Joe")
- ).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where(lambda query: query.where("age", 2).where("name", "Joe")).to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_several_where(self):
- to_sql = (
- self.builder.select("username", "password")
- .where("id", 1)
- .where("username", "joe")
- .to_sql()
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.select("username", "password").where("id", 1).where("username", "joe").to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_several_where_and_limit(self):
- to_sql = (
- self.builder.select("username", "password")
- .where("id", 1)
- .where("username", "joe")
- .limit(10)
- .to_sql()
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.select("username", "password").where("id", 1).where("username", "joe").limit(10).to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_sum(self):
to_sql = self.builder.sum("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_max(self):
to_sql = self.builder.max("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_max_and_columns(self):
to_sql = self.builder.select("username").max("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_max_and_columns_different_order(self):
to_sql = self.builder.max("age").select("username").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_order_by(self):
to_sql = self.builder.select("username").order_by("age", "desc").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_multiple_order_by(self):
- to_sql = (
- self.builder.select("username")
- .order_by("age", "desc")
- .order_by("name")
- .to_sql()
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.select("username").order_by("age", "desc").order_by("name").to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_with_group_by(self):
to_sql = self.builder.select("username").group_by("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_in(self):
to_sql = self.builder.select("username").where_in("age", [1, 2, 3]).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_in_empty(self):
to_sql = self.builder.where_in("age", []).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_not_in(self):
to_sql = self.builder.select("username").where_not_in("age", [1, 2, 3]).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_null(self):
to_sql = self.builder.select("username").where_null("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_not_null(self):
to_sql = self.builder.select("username").where_not_null("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_count(self):
to_sql = self.builder.count("*").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_count_column(self):
to_sql = self.builder.count("money").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_column(self):
to_sql = self.builder.where_column("name", "email").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_sub_select(self):
- to_sql = self.builder.where_in(
- "name", self.builder.new().select("age")
- ).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where_in("name", self.builder.new().select("age")).to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_complex_sub_select(self):
to_sql = self.builder.where_in(
"name",
- (
- self.builder.new()
- .select("age")
- .where_in("email", self.builder.new().select("email"))
- ),
+ (self.builder.new().select("age").where_in("email", self.builder.new().select("email"))),
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_sub_select_where(self):
@@ -231,9 +157,7 @@ def test_can_compile_sub_select_where(self):
"age",
self.builder.new().select("age").where("age", 2).where("name", "Joe"),
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_sub_select_from_lambda(self):
@@ -250,61 +174,41 @@ def test_can_compile_sub_select_from_lambda(self):
def test_can_compile_sub_select_value(self):
to_sql = self.builder.where("name", self.builder.new().sum("age")).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_exists(self):
to_sql = (
- self.builder.select("age")
- .where_exists(self.builder.new().select("username").where("age", 12))
- .to_sql()
+ self.builder.select("age").where_exists(self.builder.new().select("username").where("age", 12)).to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_not_exists(self):
to_sql = (
- self.builder.select("age")
- .where_not_exists(self.builder.new().select("username").where("age", 12))
- .to_sql()
+ self.builder.select("age").where_not_exists(self.builder.new().select("username").where("age", 12)).to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_having(self):
to_sql = self.builder.sum("age").group_by("age").having("age").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_having_with_expression(self):
to_sql = self.builder.sum("age").group_by("age").having("age", 10).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_having_with_greater_than_expression(self):
to_sql = self.builder.sum("age").group_by("age").having("age", ">", 10).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join(self):
- to_sql = self.builder.join(
- "contacts", "users.id", "=", "contacts.user_id"
- ).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.join("contacts", "users.id", "=", "contacts.user_id").to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join_clause(self):
@@ -317,50 +221,30 @@ def test_can_compile_join_clause(self):
)
to_sql = self.builder.join(clause).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join_clause_with_value(self):
- clause = (
- JoinClause("report_groups as rg")
- .on_value("bgt.active", "=", "1")
- .or_on_value("bgt.acct", "=", "1234")
- )
+ clause = JoinClause("report_groups as rg").on_value("bgt.active", "=", "1").or_on_value("bgt.acct", "=", "1234")
to_sql = self.builder.join(clause).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join_clause_with_null(self):
- clause = (
- JoinClause("report_groups as rg")
- .on_null("bgt.acct")
- .or_on_null("bgt.dept")
- .on_value("rg.abc", 10)
- )
+ clause = JoinClause("report_groups as rg").on_null("bgt.acct").or_on_null("bgt.dept").on_value("rg.abc", 10)
to_sql = self.builder.join(clause).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join_clause_with_not_null(self):
clause = (
- JoinClause("report_groups as rg")
- .on_not_null("bgt.acct")
- .or_on_not_null("bgt.dept")
- .on_value("rg.abc", 10)
+ JoinClause("report_groups as rg").on_not_null("bgt.acct").or_on_not_null("bgt.dept").on_value("rg.abc", 10)
)
to_sql = self.builder.join(clause).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_join_clause_with_lambda(self):
@@ -369,9 +253,7 @@ def test_can_compile_join_clause_with_lambda(self):
lambda clause: clause.on("bgt.fund", "=", "rg.fund").on_null("bgt"),
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_left_join_clause_with_lambda(self):
@@ -380,9 +262,7 @@ def test_can_compile_left_join_clause_with_lambda(self):
lambda clause: clause.on("bgt.fund", "=", "rg.fund").or_on_null("bgt"),
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_right_join_clause_with_lambda(self):
@@ -391,18 +271,12 @@ def test_can_compile_right_join_clause_with_lambda(self):
lambda clause: clause.on("bgt.fund", "=", "rg.fund").or_on_null("bgt"),
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_left_join(self):
- to_sql = self.builder.left_join(
- "contacts", "users.id", "=", "contacts.user_id"
- ).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.left_join("contacts", "users.id", "=", "contacts.user_id").to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_multiple_join(self):
@@ -411,135 +285,93 @@ def test_can_compile_multiple_join(self):
.join("posts", "comments.post_id", "=", "posts.id")
.to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_limit_and_offset(self):
to_sql = self.builder.limit(10).offset(10).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_between(self):
to_sql = self.builder.between("age", 18, 21).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_not_between(self):
to_sql = self.builder.not_between("age", 18, 21).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_user_where_raw_and_where(self):
- to_sql = (
- self.builder.where_raw("age = '18'").where("name", "=", "James").to_sql()
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where_raw("age = '18'").where("name", "=", "James").to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_where_raw_and_where_with_multiple_bindings(self):
- query = self.builder.where_raw(
- "`age` = ? AND `is_admin` = ?", [18, True]
- ).where("email", "test@example.com")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ query = self.builder.where_raw("`age` = ? AND `is_admin` = ?", [18, True]).where("email", "test@example.com")
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(query.to_qmark(), sql)
self.assertEqual(query._bindings, [18, True, "test@example.com"])
def test_can_compile_first_or_fail(self):
- to_sql = (
- self.builder.where("is_admin", "=", True).first_or_fail(query=True).to_sql()
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where("is_admin", "=", True).first_or_fail(query=True).to_sql()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_where_like(self):
to_sql = self.builder.where("age", "like", "%name%").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_where_regexp(self):
to_sql = self.builder.where("age", "regexp", "Joe").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_where_exists_with_lambda(self):
to_sql = self.builder.where_exists(lambda q: q.where("age", 1)).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
print(to_sql)
self.assertEqual(to_sql, sql)
def test_where_not_exists_with_lambda(self):
to_sql = self.builder.where_not_exists(lambda q: q.where("age", 1)).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
print(to_sql)
self.assertEqual(to_sql, sql)
def test_where_not_regexp(self):
to_sql = self.builder.where("age", "not regexp", "Joe").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_where_not_like(self):
to_sql = self.builder.where("age", "not like", "%name%").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_shared_lock(self):
to_sql = self.builder.where("votes", ">=", 100).shared_lock().to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_update_lock(self):
to_sql = self.builder.where("votes", ">=", 100).lock_for_update().to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_where_date(self):
to_sql = self.builder.where_date("created_at", "2022-06-01").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_or_where_null(self):
to_sql = self.builder.where_null("column1").or_where_null("column2").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_select_distinct(self):
to_sql = self.builder.select("group").distinct().to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py
index b162c180..759f64bb 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py
@@ -5,9 +5,7 @@
class TestEagerRelation(unittest.TestCase):
def test_can_register_string_eager_load(self):
- self.assertEqual(
- EagerRelations().register("profile").get_eagers(), [["profile"]]
- )
+ self.assertEqual(EagerRelations().register("profile").get_eagers(), [["profile"]])
self.assertEqual(EagerRelations().register("profile").is_nested, False)
self.assertEqual(
EagerRelations().register("profile.user").get_eagers(),
@@ -18,9 +16,7 @@ def test_can_register_string_eager_load(self):
[{"profile": ["user", "logo"]}],
)
self.assertEqual(
- EagerRelations()
- .register("profile.user", "profile.logo", "profile.bio")
- .get_eagers(),
+ EagerRelations().register("profile.user", "profile.logo", "profile.bio").get_eagers(),
[{"profile": ["user", "logo", "bio"]}],
)
self.assertEqual(
@@ -29,9 +25,7 @@ def test_can_register_string_eager_load(self):
)
def test_can_register_tuple_eager_load(self):
- self.assertEqual(
- EagerRelations().register(("profile",)).get_eagers(), [["profile"]]
- )
+ self.assertEqual(EagerRelations().register(("profile",)).get_eagers(), [["profile"]])
self.assertEqual(
EagerRelations().register(("profile", "user")).get_eagers(),
[["profile", "user"]],
@@ -42,9 +36,7 @@ def test_can_register_tuple_eager_load(self):
)
def test_can_register_list_eager_load(self):
- self.assertEqual(
- EagerRelations().register(["profile"]).get_eagers(), [["profile"]]
- )
+ self.assertEqual(EagerRelations().register(["profile"]).get_eagers(), [["profile"]])
self.assertEqual(
EagerRelations().register(["profile", "user"]).get_eagers(),
[["profile", "user"]],
@@ -62,8 +54,6 @@ def test_can_register_list_eager_load(self):
[["logo"], {"profile": ["name"]}],
)
self.assertEqual(
- EagerRelations()
- .register(["profile.name", "logo", "profile.user"])
- .get_eagers(),
+ EagerRelations().register(["profile.name", "logo", "profile.user"]).get_eagers(),
[["logo"], {"profile": ["name", "user"]}],
)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py
index b516bd10..f6c7696e 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py
@@ -3,18 +3,14 @@
class TestModelCast(TestCase):
- migration_directory = (
- "src/fastapi_startkit/masoniteorm/tests/integrations/databases/migrations"
- )
+ migration_directory = "src/fastapi_startkit/masoniteorm/tests/integrations/databases/migrations"
async def test_database_is_isolated(self):
user = await User.first()
self.assertIsNone(user)
async def test_first_record_can_be_fetch(self):
- await User.create(
- name="Joe", username="joe", email="joe@test.com", password="password"
- )
+ await User.create(name="Joe", username="joe", email="joe@test.com", password="password")
user = await User.first()
self.assertEqual(user.name, "Joe")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py
index 59d7a65b..a1e518f7 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py
@@ -61,22 +61,14 @@ def test_model_can_access_str_dates_as_pendulum_from_correct_datetimes(
):
model = ModelTest()
- self.assertEqual(
- model.get_new_date(datetime.datetime(2021, 1, 1, 7, 10)).hour, 7
- )
+ self.assertEqual(model.get_new_date(datetime.datetime(2021, 1, 1, 7, 10)).hour, 7)
self.assertEqual(model.get_new_date(datetime.date(2021, 1, 1)).hour, 0)
self.assertEqual(model.get_new_date(datetime.time(1, 1, 1)).hour, 1)
self.assertEqual(model.get_new_date("2020-11-28 11:42:07").hour, 11)
def test_model_can_access_str_dates_on_relationships(self):
model = ModelTest.hydrate({"user": "joe", "due_date": "2020-11-28 11:42:07"})
- model.add_relation(
- {
- "profile": ModelTest.hydrate(
- {"name": "bob", "due_date": "2020-11-28 11:42:07"}
- )
- }
- )
+ model.add_relation({"profile": ModelTest.hydrate({"name": "bob", "due_date": "2020-11-28 11:42:07"})})
self.assertEqual(model.profile.name, "bob")
self.assertTrue(model.profile.due_date.is_past())
@@ -85,9 +77,7 @@ def test_model_original_and_dirty_attributes(self):
model = ModelTest.hydrate({"username": "joe", "admin": True})
self.assertEqual(model.username, "joe")
- self.assertEqual(
- model.__original_attributes__, {"username": "joe", "admin": True}
- )
+ self.assertEqual(model.__original_attributes__, {"username": "joe", "admin": True})
model.username = "bob"
@@ -97,9 +87,7 @@ def test_model_original_and_dirty_attributes(self):
self.assertEqual(model.__dirty_attributes__["username"], "bob")
self.assertEqual(model.get_dirty_keys(), ["username"])
self.assertTrue(model.is_dirty() is True)
- self.assertEqual(
- model.__original_attributes__, {"username": "joe", "admin": True}
- )
+ self.assertEqual(model.__original_attributes__, {"username": "joe", "admin": True})
def test_model_creates_when_new(self):
model = ModelTest.hydrate({"id": 1, "username": "joe", "admin": True})
@@ -173,21 +161,15 @@ def test_model_can_cast_dict_attributes(self):
self.assertEqual(type(model.d), Decimal)
def test_valid_json_cast(self):
- model = ModelTest.hydrate(
- {"payload": {"this": "dict", "is": "usable", "as": "json"}}
- )
+ model = ModelTest.hydrate({"payload": {"this": "dict", "is": "usable", "as": "json"}})
self.assertEqual(type(model.payload), dict)
- model = ModelTest.hydrate(
- {"payload": {"this": "dict", "is": "invalid", "as": "json"}}
- )
+ model = ModelTest.hydrate({"payload": {"this": "dict", "is": "invalid", "as": "json"}})
self.assertEqual(type(model.payload), dict)
- model = ModelTest.hydrate(
- {"payload": '{"this": "dict", "is": "usable", "as": "json"}'}
- )
+ model = ModelTest.hydrate({"payload": '{"this": "dict", "is": "usable", "as": "json"}'})
self.assertEqual(type(model.payload), dict)
@@ -204,9 +186,7 @@ def test_valid_json_cast(self):
model.save()
def test_model_update_without_changes(self):
- model = ModelTest.hydrate(
- {"id": 1, "username": "joe", "name": "Joe", "admin": True}
- )
+ model = ModelTest.hydrate({"id": 1, "username": "joe", "name": "Joe", "admin": True})
model.username = "joe"
model.name = "Bill"
@@ -215,9 +195,7 @@ def test_model_update_without_changes(self):
self.assertNotIn("username", sql)
def test_force_update_on_model_class(self):
- model = ModelTestForced.hydrate(
- {"id": 1, "username": "joe", "name": "Joe", "admin": True}
- )
+ model = ModelTestForced.hydrate({"id": 1, "username": "joe", "name": "Joe", "admin": True})
model.username = "joe"
model.name = "Bill"
@@ -227,17 +205,13 @@ def test_force_update_on_model_class(self):
self.assertIn("name", sql)
def test_only_method(self):
- model = ModelTestForced.hydrate(
- {"id": 1, "username": "joe", "name": "Joe", "admin": True}
- )
+ model = ModelTestForced.hydrate({"id": 1, "username": "joe", "name": "Joe", "admin": True})
self.assertEqual({"username": "joe"}, model.only("username"))
self.assertEqual({"username": "joe"}, model.only(["username"]))
def test_model_update_without_changes_at_all(self):
- model = ModelTest.hydrate(
- {"id": 1, "username": "joe", "name": "Joe", "admin": True}
- )
+ model = ModelTest.hydrate({"id": 1, "username": "joe", "name": "Joe", "admin": True})
model.username = "joe"
model.name = "Joe"
@@ -258,11 +232,7 @@ def test_model_using_or_where_and_chaining_wheres(self):
sql = (
model.where("name", "=", "joe")
- .or_where(
- lambda query: query.where("username", "Joseph").or_where(
- "age", ">=", 18
- )
- )
+ .or_where(lambda query: query.where("username", "Joseph").or_where("age", ">=", 18))
.to_sql()
)
@@ -302,9 +272,7 @@ def test_model_can_provide_default_select(self):
)
def test_model_can_override_to_default_select(self):
- sql = ModelWithBaseModel.select(
- ["products.name", "products.id", "store.name"]
- ).to_sql()
+ sql = ModelWithBaseModel.select(["products.name", "products.id", "store.name"]).to_sql()
self.assertEqual(
sql,
"""SELECT `products`.`name`, `products`.`id`, `store`.`name` FROM `users`""",
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py
index 206f72b5..bdc51648 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py
@@ -38,9 +38,7 @@ def test_sum(self):
builder = self.get_builder()
builder.sum("age")
- self.assertEqual(
- builder.to_sql(), "SELECT SUM([users].[age]) AS age FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT SUM([users].[age]) AS age FROM [users]")
def test_where_like(self):
builder = self.get_builder()
@@ -64,25 +62,19 @@ def test_max(self):
builder = self.get_builder()
builder.max("age")
- self.assertEqual(
- builder.to_sql(), "SELECT MAX([users].[age]) AS age FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT MAX([users].[age]) AS age FROM [users]")
def test_min(self):
builder = self.get_builder()
builder.min("age")
- self.assertEqual(
- builder.to_sql(), "SELECT MIN([users].[age]) AS age FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT MIN([users].[age]) AS age FROM [users]")
def test_avg(self):
builder = self.get_builder()
builder.avg("age")
- self.assertEqual(
- builder.to_sql(), "SELECT AVG([users].[age]) AS age FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT AVG([users].[age]) AS age FROM [users]")
def test_all(self):
builder = self.get_builder()
@@ -130,9 +122,7 @@ def test_select_raw(self):
builder = self.get_builder()
builder.select_raw("count(email) as email_count")
- self.assertEqual(
- builder.to_sql(), "SELECT count(email) as email_count FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT count(email) as email_count FROM [users]")
def test_create(self):
builder = self.get_builder().without_global_scopes()
@@ -209,9 +199,7 @@ def test_right_join(self):
)
def test_update(self):
- builder = self.get_builder().update(
- {"name": "Joe", "email": "joe@yopmail.com"}, dry=True
- )
+ builder = self.get_builder().update({"name": "Joe", "email": "joe@yopmail.com"}, dry=True)
self.assertEqual(
builder.to_sql(),
"UPDATE [users] SET [users].[name] = 'Joe', [users].[email] = 'joe@yopmail.com'",
@@ -234,9 +222,7 @@ def test_update(self):
def test_count(self):
builder = self.get_builder()
builder.count("id")
- self.assertEqual(
- builder.to_sql(), "SELECT COUNT([users].[id]) AS id FROM [users]"
- )
+ self.assertEqual(builder.to_sql(), "SELECT COUNT([users].[id]) AS id FROM [users]")
def test_order_by_asc(self):
builder = self.get_builder()
@@ -246,9 +232,7 @@ def test_order_by_asc(self):
def test_order_by_desc(self):
builder = self.get_builder()
builder.order_by("email", "desc")
- self.assertEqual(
- builder.to_sql(), "SELECT * FROM [users] ORDER BY [email] DESC"
- )
+ self.assertEqual(builder.to_sql(), "SELECT * FROM [users] ORDER BY [email] DESC")
def test_where_column(self):
builder = self.get_builder()
@@ -311,9 +295,7 @@ def test_where_not_null(self):
def test_having(self):
builder = self.get_builder(table="payments")
- builder.select("user_id").avg("salary").group_by("user_id").having(
- "salary", ">=", "1000"
- )
+ builder.select("user_id").avg("salary").group_by("user_id").having("salary", ">=", "1000")
self.assertEqual(
builder.to_sql(),
@@ -400,12 +382,7 @@ def test_or_where(self):
def test_can_call_with_schema(self):
builder = self.get_builder()
- sql = (
- builder.table("information_schema.columns")
- .select("table_name")
- .where("table_name", "users")
- .to_sql()
- )
+ sql = builder.table("information_schema.columns").select("table_name").where("table_name", "users").to_sql()
self.assertEqual(
sql,
"""SELECT [information_schema].[columns].[table_name] FROM [information_schema].[columns] WHERE [information_schema].[columns].[table_name] = 'users'""",
@@ -424,9 +401,7 @@ def test_truncate_without_foreign_keys(self):
def test_latest(self):
builder = self.get_builder()
builder.latest("email")
- self.assertEqual(
- builder.to_sql(), "SELECT * FROM [users] ORDER BY [email] DESC"
- )
+ self.assertEqual(builder.to_sql(), "SELECT * FROM [users] ORDER BY [email] DESC")
def test_latest_multiple(self):
builder = self.get_builder()
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py
index 1e5007a0..07a44114 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py
@@ -15,15 +15,7 @@ def test_can_compile_delete(self):
self.assertEqual(to_sql, sql)
def test_can_compile_delete_with_where(self):
- to_sql = (
- self.builder.where("age", 20)
- .where("profile", 1)
- .set_action("delete")
- .delete(query=True)
- .to_sql()
- )
+ to_sql = self.builder.where("age", 20).where("profile", 1).set_action("delete").delete(query=True).to_sql()
- sql = (
- "DELETE FROM [users] WHERE [users].[age] = '20' AND [users].[profile] = '1'"
- )
+ sql = "DELETE FROM [users] WHERE [users].[age] = '20' AND [users].[profile] = '1'"
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py
index 8980db78..ca69af6c 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py
@@ -29,9 +29,7 @@ def test_can_compile_bulk_create(self):
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create_qmark(self):
- to_sql = self.builder.bulk_create(
- [{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True
- ).to_qmark()
+ to_sql = self.builder.bulk_create([{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True).to_qmark()
sql = "INSERT INTO [users] ([name]) VALUES (?), (?), (?)"
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py
index a0595df8..7860c318 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py
@@ -117,9 +117,7 @@ def can_compile_where_raw(self):
return "SELECT * FROM [users] WHERE [users].[age] = '18'"
def test_can_compile_where_raw_and_where_with_multiple_bindings(self):
- query = self.builder.where_raw(
- "[age] = ? AND [is_admin] = ?", [18, True]
- ).where("email", "test@example.com")
+ query = self.builder.where_raw("[age] = ? AND [is_admin] = ?", [18, True]).where("email", "test@example.com")
self.assertEqual(
query.to_qmark(),
"SELECT * FROM [users] WHERE [age] = ? AND [is_admin] = ? AND [users].[email] = ?",
@@ -175,9 +173,7 @@ def can_compile_or_where(self):
"""
self.builder.where('name', 2).or_where('name', 3).to_sql()
"""
- return (
- "SELECT * FROM [users] WHERE [users].[name] = '2' OR [users].[name] = '3'"
- )
+ return "SELECT * FROM [users] WHERE [users].[name] = '2' OR [users].[name] = '3'"
def can_grouped_where(self):
"""
@@ -304,21 +300,12 @@ def test_can_compile_where_raw(self):
self.assertEqual(to_sql, "SELECT * FROM [users] WHERE [age] = '18'")
def test_can_compile_having_raw(self):
- to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .to_sql()
- )
- self.assertEqual(
- to_sql, "SELECT COUNT(*) as counts FROM [users] HAVING counts > 10"
- )
+ to_sql = self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").to_sql()
+ self.assertEqual(to_sql, "SELECT COUNT(*) as counts FROM [users] HAVING counts > 10")
def test_can_compile_having_raw_order(self):
to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .order_by_raw("counts DESC")
- .to_sql()
+ self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").order_by_raw("counts DESC").to_sql()
)
self.assertEqual(
to_sql,
@@ -327,16 +314,12 @@ def test_can_compile_having_raw_order(self):
def test_can_compile_select_raw(self):
to_sql = self.builder.select_raw("COUNT(*)").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_select_raw_with_select(self):
to_sql = self.builder.select("id").select_raw("COUNT(*)").to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def can_compile_first_or_fail(self):
@@ -397,7 +380,9 @@ def can_compile_join_clause_with_value(self):
)
builder.join(clause).to_sql()
"""
- return "SELECT * FROM [users] INNER JOIN [report_groups] AS [rg] ON [bgt].[active] = '1' OR [bgt].[acct] = '1234'"
+ return (
+ "SELECT * FROM [users] INNER JOIN [report_groups] AS [rg] ON [bgt].[active] = '1' OR [bgt].[acct] = '1234'"
+ )
def can_compile_join_clause_with_null(self):
"""
@@ -436,7 +421,9 @@ def can_compile_join_clause_with_lambda(self):
),
).to_sql()
"""
- return "SELECT * FROM [users] INNER JOIN [report_groups] AS [rg] ON [bgt].[fund] = [rg].[fund] AND [bgt] IS NULL"
+ return (
+ "SELECT * FROM [users] INNER JOIN [report_groups] AS [rg] ON [bgt].[fund] = [rg].[fund] AND [bgt] IS NULL"
+ )
def can_compile_left_join_clause_with_lambda(self):
"""
@@ -491,9 +478,7 @@ def where_not_exists_with_lambda(self):
return """SELECT * FROM [users] WHERE NOT EXISTS (SELECT * FROM [users] WHERE [users].[age] = '1')"""
def where_date(self):
- return (
- """SELECT * FROM [users] WHERE DATE([users].[created_at]) = '2022-06-01'"""
- )
+ return """SELECT * FROM [users] WHERE DATE([users].[created_at]) = '2022-06-01'"""
def or_where_null(self):
return """SELECT * FROM [users] WHERE [users].[column1] IS NULL OR [users].[column2] IS NULL"""
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py
index 49c6e4ab..d9e3bbe6 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py
@@ -10,20 +10,13 @@ def setUp(self):
self.builder = QueryBuilder(MSSQLGrammar, table="users")
def test_can_compile_update(self):
- to_sql = (
- self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
- )
+ to_sql = self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
sql = "UPDATE [users] SET [users].[name] = 'Joe' WHERE [users].[name] = 'bob'"
self.assertEqual(to_sql, sql)
def test_can_compile_update_with_multiple_where(self):
- to_sql = (
- self.builder.where("name", "bob")
- .where("age", 20)
- .update({"name": "Joe"}, dry=True)
- .to_sql()
- )
+ to_sql = self.builder.where("name", "bob").where("age", 20).update({"name": "Joe"}, dry=True).to_sql()
sql = "UPDATE [users] SET [users].[name] = 'Joe' WHERE [users].[name] = 'bob' AND [users].[age] = '20'"
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py
index 4205bc7e..78a1c0c1 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py
@@ -169,9 +169,7 @@ def test_can_advanced_table_creation2(self):
blueprint.string("thumbnail").nullable()
blueprint.integer("premium")
blueprint.integer("author_id").unsigned().nullable()
- blueprint.foreign("author_id").references("id").on("users").on_delete(
- "CASCADE"
- )
+ blueprint.foreign("author_id").references("id").on("users").on_delete("CASCADE")
blueprint.text("description")
blueprint.timestamps()
@@ -192,9 +190,7 @@ def test_can_advanced_table_creation2(self):
def test_can_add_columns_with_foreign_key_constraint_name(self):
with self.schema.create("users") as blueprint:
blueprint.integer("profile_id")
- blueprint.foreign("profile_id", name="profile_foreign").references("id").on(
- "profiles"
- )
+ blueprint.foreign("profile_id", name="profile_foreign").references("id").on("profiles")
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py
index f1b323e2..e98d1766 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py
@@ -26,9 +26,7 @@ def test_can_add_columns(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
- sql = [
- "ALTER TABLE [users] ADD [name] VARCHAR(255) NOT NULL, [age] INT NOT NULL"
- ]
+ sql = ["ALTER TABLE [users] ADD [name] VARCHAR(255) NOT NULL, [age] INT NOT NULL"]
self.assertEqual(blueprint.to_sql(), sql)
@@ -81,9 +79,7 @@ def test_alter_drop1(self):
def test_alter_add_column_and_foreign_key(self):
with self.schema.table("users") as blueprint:
blueprint.unsigned_integer("playlist_id").nullable()
- blueprint.foreign("playlist_id").references("id").on("playlists").on_delete(
- "cascade"
- )
+ blueprint.foreign("playlist_id").references("id").on("playlists").on_delete("cascade")
sql = [
"ALTER TABLE [users] ADD [playlist_id] INT NULL",
@@ -132,9 +128,7 @@ def test_alter_add_primary(self):
with self.schema.table("users") as blueprint:
blueprint.primary("playlist_id")
- sql = [
- "ALTER TABLE [users] ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)"
- ]
+ sql = ["ALTER TABLE [users] ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)"]
self.assertEqual(blueprint.to_sql(), sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py
index 9ee7950a..67f3de9a 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py
@@ -18,9 +18,7 @@ class BaseTestQueryRelationships(unittest.TestCase):
def get_builder(self, table="users"):
connection = ConnectionFactory().make("mysql")
- return QueryBuilder(
- grammar=MySQLGrammar, connection=connection, table=table
- ).on("mysql")
+ return QueryBuilder(grammar=MySQLGrammar, connection=connection, table=table).on("mysql")
def test_transaction(self):
builder = self.get_builder()
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py
index 6bbd662b..b274311b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py
@@ -41,94 +41,72 @@ def test_sum(self):
builder = self.get_builder()
builder.sum("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_sum_chained(self):
builder = self.get_builder()
builder.sum("age").max("salary")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_with_(self):
builder = self.get_builder()
builder.with_("articles").sum("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_like(self):
builder = self.get_builder()
builder.where("age", "like", "%name%")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_like(self):
builder = self.get_builder()
builder.where("age", "not like", "%name%")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_max(self):
builder = self.get_builder()
builder.max("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_min(self):
builder = self.get_builder()
builder.min("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_avg(self):
builder = self.get_builder()
builder.avg("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_all(self):
builder = self.get_builder()
builder.all()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_get(self):
builder = self.get_builder()
builder.get()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_first(self):
builder = self.get_builder().first(query=True)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_find_with_model(self):
@@ -172,41 +150,31 @@ def test_find_with_builder_without_column(self):
def test_select(self):
builder = self.get_builder()
builder.select("name", "email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select_with_table(self):
builder = self.get_builder()
builder.select("users.*")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select_with_table_raw(self):
builder = self.get_builder()
builder.select("users.*").from_raw("orders, customers")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select_with_alias(self):
builder = self.get_builder()
builder.select("users.username as name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select_raw(self):
builder = self.get_builder()
builder.select_raw("count(email) as email_count")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_add_select(self):
@@ -217,9 +185,7 @@ def test_add_select(self):
.add_select("salary", lambda q: q.count("*").table("salary"))
.to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_add_select_no_table(self):
@@ -235,9 +201,7 @@ def test_add_select_no_table(self):
)
.to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_create(self):
@@ -246,82 +210,60 @@ def test_create(self):
{"name": "Corentin All", "email": "corentin@yopmail.com"},
query=True,
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_delete(self):
builder = self.get_builder()
builder.delete("name", "Joe", query=True)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where(self):
builder = self.get_builder()
builder.where("name", "Joe")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_exists(self):
builder = self.get_builder()
builder.where_exists("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_limit(self):
builder = self.get_builder()
builder.limit(5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_offset(self):
builder = self.get_builder()
builder.offset(5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_join(self):
builder = self.get_builder()
builder.join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_left_join(self):
builder = self.get_builder()
builder.left_join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_right_join(self):
builder = self.get_builder()
builder.right_join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_update(self):
- builder = self.get_builder().update(
- {"name": "Joe", "email": "joe@yopmail.com"}, dry=True
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ builder = self.get_builder().update({"name": "Joe", "email": "joe@yopmail.com"}, dry=True)
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
# def test_increment(self):
@@ -343,104 +285,78 @@ def test_update(self):
def test_count(self):
builder = self.get_builder()
builder.count("id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_order_by_asc(self):
builder = self.get_builder()
builder.order_by("email", "asc")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_order_by_desc(self):
builder = self.get_builder()
builder.order_by("email", "desc")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_column(self):
builder = self.get_builder()
builder.where_column("name", "username")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_in(self):
builder = self.get_builder()
builder.where_not_in("id", [1, 2, 3])
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_between(self):
builder = self.get_builder()
builder.between("id", 2, 5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_not_between(self):
builder = self.get_builder()
builder.not_between("id", 2, 5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_in(self):
builder = self.get_builder()
builder.where_in("id", [1, 2, 3])
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_null(self):
builder = self.get_builder()
builder.where_null("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_null(self):
builder = self.get_builder()
builder.where_not_null("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_having(self):
builder = self.get_builder(table="payments")
- builder.select("user_id").avg("salary").group_by("user_id").having(
- "salary", ">=", "1000"
- )
+ builder.select("user_id").avg("salary").group_by("user_id").having("salary", ">=", "1000")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_group_by(self):
builder = self.get_builder(table="payments")
builder.select("user_id").min("salary").group_by("user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_builder_alone(self):
@@ -467,57 +383,43 @@ def test_builder_alone(self):
def test_where_lt(self):
builder = self.get_builder()
builder.where("age", "<", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_lte(self):
builder = self.get_builder()
builder.where("age", "<=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_gt(self):
builder = self.get_builder()
builder.where("age", ">", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_gte(self):
builder = self.get_builder()
builder.where("age", ">=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_ne(self):
builder = self.get_builder()
builder.where("age", "!=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_or_where(self):
builder = self.get_builder()
builder.where("age", "20").or_where("age", "<", 20)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_or_where(self):
builder = self.get_builder()
builder.where("age", "20").or_where("age", "<", 20)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_like_as_operator(self):
@@ -546,12 +448,7 @@ def test_where_not_like(self):
def test_can_call_with_multi_tables(self):
builder = self.get_builder()
- sql = (
- builder.table("information_schema.columns")
- .select("table_name")
- .where("table_name", "users")
- .to_sql()
- )
+ sql = builder.table("information_schema.columns").select("table_name").where("table_name", "users").to_sql()
self.assertEqual(
sql,
"""SELECT `information_schema`.`columns`.`table_name` FROM `information_schema`.`columns` WHERE `information_schema`.`columns`.`table_name` = 'users'""",
@@ -560,33 +457,25 @@ def test_can_call_with_multi_tables(self):
def test_truncate(self):
builder = self.get_builder(dry=True)
sql = builder.truncate()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_truncate_without_foreign_keys(self):
builder = self.get_builder(dry=True)
sql = builder.truncate(foreign_keys=True)
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_shared_lock(self):
builder = self.get_builder(dry=True)
sql = builder.where("votes", ">=", 100).shared_lock().to_sql()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_update_lock(self):
builder = self.get_builder(dry=True)
sql = builder.where("votes", ">=", 100).lock_for_update().to_sql()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
@@ -899,9 +788,7 @@ def or_where(self):
builder = self.get_builder()
builder.where('age', '20').or_where('age','<', 20)
"""
- return (
- "SELECT * FROM `users` WHERE `users`.`age` = '20' OR `users`.`age` < '20'"
- )
+ return "SELECT * FROM `users` WHERE `users`.`age` = '20' OR `users`.`age` < '20'"
def where_like(self):
"""
@@ -952,17 +839,13 @@ def update_lock(self):
def test_latest(self):
builder = self.get_builder()
builder.latest("email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_oldest(self):
builder = self.get_builder()
builder.oldest("email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def latest(self):
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py
index 50339a02..bba513a3 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py
@@ -21,9 +21,7 @@ def get_builder(self, table="users"):
)
def test_scopes(self):
- builder = self.get_builder().set_scope(
- "gender", lambda model, q: q.where("gender", "w")
- )
+ builder = self.get_builder().set_scope("gender", lambda model, q: q.where("gender", "w"))
self.assertEqual(
builder.gender().where("id", 1).to_sql(),
@@ -51,11 +49,7 @@ def test_global_scope_from_class(self):
)
def test_global_scope_remove_from_class(self):
- builder = (
- self.get_builder()
- .set_global_scope(SoftDeleteScope())
- .remove_global_scope(SoftDeleteScope())
- )
+ builder = self.get_builder().set_global_scope(SoftDeleteScope()).remove_global_scope(SoftDeleteScope())
self.assertEqual(
builder.where("id", 1).to_sql(),
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py
index c17acee7..93a73a94 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py
@@ -12,31 +12,19 @@ def setUp(self):
def test_can_compile_delete(self):
to_sql = self.builder.delete("id", 1, query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_delete_in(self):
to_sql = self.builder.delete("id", [1, 2, 3], query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_delete_with_where(self):
- to_sql = (
- self.builder.where("age", 20)
- .where("profile", 1)
- .set_action("delete")
- .delete(query=True)
- .to_sql()
- )
+ to_sql = self.builder.where("age", 20).where("profile", 1).set_action("delete").delete(query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
@@ -74,6 +62,4 @@ def can_compile_delete_with_where(self):
.to_sql()
)
"""
- return (
- "DELETE FROM `users` WHERE `users`.`age` = '20' AND `users`.`profile` = '1'"
- )
+ return "DELETE FROM `users` WHERE `users`.`age` = '20' AND `users`.`profile` = '1'"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py
index 0089ba2c..7d3e727b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py
@@ -12,17 +12,13 @@ def setUp(self):
def test_can_compile_insert(self):
to_sql = self.builder.create({"name": "Joe"}, query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_insert_with_keywords(self):
to_sql = self.builder.create(name="Joe", query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create(self):
@@ -36,19 +32,13 @@ def test_can_compile_bulk_create(self):
query=True,
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create_qmark(self):
- to_sql = self.builder.bulk_create(
- [{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True
- ).to_qmark()
+ to_sql = self.builder.bulk_create([{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True).to_qmark()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create_multiple(self):
@@ -61,9 +51,7 @@ def test_can_compile_bulk_create_multiple(self):
query=True,
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py
index f276101d..532a22cf 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py
@@ -12,104 +12,78 @@ def setUp(self):
def test_can_compile_select(self):
mark = self.builder.select("username").where("name", "Joe")
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_delete(self):
mark = self.builder.where("name", "Joe").delete(query=True)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_update(self):
mark = self.builder.update({"name": "Bob"}, dry=True).where("name", "Joe")
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_where_in(self):
mark = self.builder.where_in("id", [1, 2, 3])
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_where_not_null(self):
mark = self.builder.where_not_null("id")
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, [])
def test_can_compile_where_with_falsy_values(self):
mark = self.builder.where("name", 0)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_where_with_true_value(self):
mark = self.builder.where("is_admin", True)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_where_with_false_value(self):
mark = self.builder.where("is_admin", False)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_compile_sub_group_bindings(self):
mark = self.builder.where(
- lambda query: (
- query.where("challenger", 1)
- .or_where("proposer", 1)
- .or_where("referee", 1)
- )
+ lambda query: query.where("challenger", 1).or_where("proposer", 1).or_where("referee", 1)
)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(mark.to_qmark(), sql)
self.assertEqual(mark._bindings, bindings)
def test_can_increment(self):
builder = self.builder.increment("age", dry=True)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_qmark(), sql)
self.assertEqual(builder._bindings, bindings)
def test_can_decrement(self):
builder = self.builder.decrement("age", dry=True)
- sql, bindings = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql, bindings = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_qmark(), sql)
self.assertEqual(builder._bindings, bindings)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py
index a87dd772..0d6ccb2c 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py
@@ -176,9 +176,7 @@ def can_compile_or_where(self):
"""
self.builder.where('name', 2).or_where('name', 3).to_sql()
"""
- return (
- "SELECT * FROM `users` WHERE `users`.`name` = '2' OR `users`.`name` = '3'"
- )
+ return "SELECT * FROM `users` WHERE `users`.`name` = '2' OR `users`.`name` = '3'"
def can_grouped_where(self):
"""
@@ -299,21 +297,12 @@ def test_can_compile_where_raw(self):
self.assertEqual(to_sql, "SELECT * FROM `users` WHERE `age` = '18'")
def test_can_compile_having_raw(self):
- to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .to_sql()
- )
- self.assertEqual(
- to_sql, "SELECT COUNT(*) as counts FROM `users` HAVING counts > 10"
- )
+ to_sql = self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").to_sql()
+ self.assertEqual(to_sql, "SELECT COUNT(*) as counts FROM `users` HAVING counts > 10")
def test_can_compile_having_raw_order(self):
to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .order_by_raw("counts DESC")
- .to_sql()
+ self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").order_by_raw("counts DESC").to_sql()
)
self.assertEqual(
to_sql,
@@ -386,7 +375,9 @@ def can_compile_join_clause_with_value(self):
)
builder.join(clause).to_sql()
"""
- return "SELECT * FROM `users` INNER JOIN `report_groups` AS `rg` ON `bgt`.`active` = '1' OR `bgt`.`acct` = '1234'"
+ return (
+ "SELECT * FROM `users` INNER JOIN `report_groups` AS `rg` ON `bgt`.`active` = '1' OR `bgt`.`acct` = '1234'"
+ )
def can_compile_join_clause_with_null(self):
"""
@@ -425,7 +416,9 @@ def can_compile_join_clause_with_lambda(self):
),
).to_sql()
"""
- return "SELECT * FROM `users` INNER JOIN `report_groups` AS `rg` ON `bgt`.`fund` = `rg`.`fund` AND `bgt` IS NULL"
+ return (
+ "SELECT * FROM `users` INNER JOIN `report_groups` AS `rg` ON `bgt`.`fund` = `rg`.`fund` AND `bgt` IS NULL"
+ )
def can_compile_left_join_clause_with_lambda(self):
"""
@@ -480,9 +473,7 @@ def where_not_exists_with_lambda(self):
return """SELECT * FROM `users` WHERE NOT EXISTS (SELECT * FROM `users` WHERE `users`.`age` = '1')"""
def where_date(self):
- return (
- """SELECT * FROM `users` WHERE DATE(`users`.`created_at`) = '2022-06-01'"""
- )
+ return """SELECT * FROM `users` WHERE DATE(`users`.`created_at`) = '2022-06-01'"""
def or_where_null(self):
return """SELECT * FROM `users` WHERE `users`.`column1` IS NULL OR `users`.`column2` IS NULL"""
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py
index 0212ec8f..713410b8 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py
@@ -11,36 +11,21 @@ def setUp(self):
self.builder = QueryBuilder(self.grammar, table="users")
def test_can_compile_update(self):
- to_sql = (
- self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
- )
+ to_sql = self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_multiple_update(self):
- to_sql = self.builder.update(
- {"name": "Joe", "email": "user@email.com"}, dry=True
- ).to_sql()
+ to_sql = self.builder.update({"name": "Joe", "email": "user@email.com"}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_update_with_multiple_where(self):
- to_sql = (
- self.builder.where("name", "bob")
- .where("age", 20)
- .update({"name": "Joe"}, dry=True)
- .to_sql()
- )
-
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where("name", "bob").where("age", 20).update({"name": "Joe"}, dry=True).to_sql()
+
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
# def test_can_compile_increment(self):
@@ -62,9 +47,7 @@ def test_can_compile_update_with_multiple_where(self):
def test_raw_expression(self):
to_sql = self.builder.update({"name": Raw("`username`")}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py
index 609785b2..c18f25a7 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py
@@ -22,9 +22,7 @@ def set_name_attribute(self, attribute):
class TestAccessor(unittest.TestCase):
def test_can_get_accessor(self):
- user = User.hydrate(
- {"name": "joe", "email": "joe@masoniteproject.com", "is_admin": 1}
- )
+ user = User.hydrate({"name": "joe", "email": "joe@masoniteproject.com", "is_admin": 1})
self.assertEqual(user.email, "joe@masoniteproject.com")
self.assertEqual(user.name, "Hello, joe")
self.assertTrue(user.is_admin is True, f"{user.is_admin} is not True")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py
index 60a06502..daacb17d 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py
@@ -79,18 +79,12 @@ class ProductNames(Model):
class TestModel(unittest.TestCase):
def test_create_can_use_fillable(self):
- sql = ProfileFillable.create(
- {"name": "Joe", "email": "user@example.com"}, query=True
- ).to_sql()
+ sql = ProfileFillable.create({"name": "Joe", "email": "user@example.com"}, query=True).to_sql()
- self.assertEqual(
- sql, "INSERT INTO `profiles` (`profiles`.`name`) VALUES ('Joe')"
- )
+ self.assertEqual(sql, "INSERT INTO `profiles` (`profiles`.`name`) VALUES ('Joe')")
def test_create_can_use_fillable_asterisk(self):
- sql = ProfileFillAsterisk.create(
- {"name": "Joe", "email": "user@example.com"}, query=True
- ).to_sql()
+ sql = ProfileFillAsterisk.create({"name": "Joe", "email": "user@example.com"}, query=True).to_sql()
self.assertEqual(
sql,
@@ -98,18 +92,12 @@ def test_create_can_use_fillable_asterisk(self):
)
def test_create_can_use_guarded(self):
- sql = ProfileGuarded.create(
- {"name": "Joe", "email": "user@example.com"}, query=True
- ).to_sql()
+ sql = ProfileGuarded.create({"name": "Joe", "email": "user@example.com"}, query=True).to_sql()
- self.assertEqual(
- sql, "INSERT INTO `profiles` (`profiles`.`name`) VALUES ('Joe')"
- )
+ self.assertEqual(sql, "INSERT INTO `profiles` (`profiles`.`name`) VALUES ('Joe')")
def test_create_can_use_guarded_asterisk(self):
- sql = ProfileGuardedAsterisk.create(
- {"name": "Joe", "email": "user@example.com"}, query=True
- ).to_sql()
+ sql = ProfileGuardedAsterisk.create({"name": "Joe", "email": "user@example.com"}, query=True).to_sql()
# An asterisk guarded attribute excludes all fields from mass-assignment.
# This would raise a DB error if there are any required fields.
@@ -169,14 +157,10 @@ def test_bulk_create_can_use_guarded_asterisk(self):
# An asterisk guarded attribute excludes all fields from mass-assignment.
# This would obviously raise an invalid SQL syntax error.
# TODO: Raise a clearer error?
- self.assertEqual(
- query_builder.to_sql(), "INSERT INTO `profiles` () VALUES (), ()"
- )
+ self.assertEqual(query_builder.to_sql(), "INSERT INTO `profiles` () VALUES (), ()")
def test_update_can_use_fillable(self):
- query_builder = ProfileFillable().update(
- {"name": "Joe", "email": "user@example.com"}, dry=True
- )
+ query_builder = ProfileFillable().update({"name": "Joe", "email": "user@example.com"}, dry=True)
self.assertEqual(
query_builder.to_sql(),
@@ -184,9 +168,7 @@ def test_update_can_use_fillable(self):
)
def test_update_can_use_fillable_asterisk(self):
- query_builder = ProfileFillAsterisk().update(
- {"name": "Joe", "email": "user@example.com"}, dry=True
- )
+ query_builder = ProfileFillAsterisk().update({"name": "Joe", "email": "user@example.com"}, dry=True)
self.assertEqual(
query_builder.to_sql(),
@@ -194,9 +176,7 @@ def test_update_can_use_fillable_asterisk(self):
)
def test_update_can_use_guarded(self):
- query_builder = ProfileGuarded().update(
- {"name": "Joe", "email": "user@example.com"}, dry=True
- )
+ query_builder = ProfileGuarded().update({"name": "Joe", "email": "user@example.com"}, dry=True)
self.assertEqual(
query_builder.to_sql(),
@@ -206,9 +186,7 @@ def test_update_can_use_guarded(self):
def test_update_can_use_guarded_asterisk(self):
profile = ProfileGuardedAsterisk()
initial_sql = profile.get_builder().to_sql()
- query_builder = profile.update(
- {"name": "Joe", "email": "user@example.com"}, dry=True
- )
+ query_builder = profile.update({"name": "Joe", "email": "user@example.com"}, dry=True)
# An asterisk guarded attribute excludes all fields from mass-assignment.
# The query builder's sql should not have been altered in any way.
@@ -235,9 +213,7 @@ def test_json(self):
self.assertEqual(profile.to_json(), '{"name": "Joe", "id": 1}')
def test_serialize_with_hidden(self):
- profile = ProfileSerialize.hydrate(
- {"name": "Joe", "id": 1, "password": "secret"}
- )
+ profile = ProfileSerialize.hydrate({"name": "Joe", "id": 1, "password": "secret"})
self.assertTrue(profile.serialize().get("name"))
self.assertTrue(profile.serialize().get("id"))
@@ -252,9 +228,7 @@ def test_serialize_with_visible(self):
"email": "joe@masonite.com",
}
)
- self.assertTrue(
- {"name": "Joe", "email": "joe@masonite.com"}, profile.serialize()
- )
+ self.assertTrue({"name": "Joe", "email": "joe@masonite.com"}, profile.serialize())
def test_serialize_with_visible_and_hidden_raise_error(self):
profile = ProfileSerializeWithVisibleAndHidden.hydrate(
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py
index 69494f9b..f28055e9 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py
@@ -47,9 +47,7 @@ class MySQLRelationships(unittest.TestCase):
maxDiff = None
def test_belongs_to_many(self):
- sql = Permission.where_has(
- "role", lambda query: query.where("slug", "users")
- ).to_sql()
+ sql = Permission.where_has("role", lambda query: query.where("slug", "users")).to_sql()
self.assertEqual(
sql,
@@ -74,9 +72,7 @@ def test_belongs_to_many_or_has(self):
def test_belongs_to_many_or_where_has(self):
sql = (
- Role.where("name", "role_name")
- .or_where_has("permissions", lambda q: q.where("permission_id", 1))
- .to_sql()
+ Role.where("name", "role_name").or_where_has("permissions", lambda q: q.where("permission_id", 1)).to_sql()
)
self.assertEqual(
@@ -95,9 +91,7 @@ def test_belongs_to_many_or_doesnt_have(self):
def test_where_doesnt_have(self):
sql = (
Role.where("name", "role_name")
- .where_doesnt_have(
- "permissions", lambda q: q.where("name", "Creates Users")
- )
+ .where_doesnt_have("permissions", lambda q: q.where("name", "Creates Users"))
.to_sql()
)
@@ -109,9 +103,7 @@ def test_where_doesnt_have(self):
def test_or_where_doesnt_have(self):
sql = (
Role.where("name", "role_name")
- .or_where_doesnt_have(
- "permissions", lambda q: q.where("name", "Creates Users")
- )
+ .or_where_doesnt_have("permissions", lambda q: q.where("name", "Creates Users"))
.to_sql()
)
@@ -121,9 +113,7 @@ def test_or_where_doesnt_have(self):
)
def test_belongs_to_many_where_has(self):
- sql = Role.where_has(
- "permissions", lambda q: q.where("name", "Creates Users")
- ).to_sql()
+ sql = Role.where_has("permissions", lambda q: q.where("name", "Creates Users")).to_sql()
self.assertEqual(
sql,
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py
index 3c6d5b7e..f4f93bc3 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py
@@ -43,9 +43,7 @@ def test_or_has(self):
)
def test_where_has_query(self):
- sql = InboundShipment.where_has(
- "from_country", lambda query: query.where("name", "USA")
- ).to_sql()
+ sql = InboundShipment.where_has("from_country", lambda query: query.where("name", "USA")).to_sql()
self.assertEqual(
sql,
@@ -75,9 +73,7 @@ def test_doesnt_have(self):
def test_or_where_doesnt_have(self):
sql = (
InboundShipment.where("name", "Joe")
- .or_where_doesnt_have(
- "from_country", lambda query: query.where("name", "USA")
- )
+ .or_where_doesnt_have("from_country", lambda query: query.where("name", "USA"))
.to_sql()
)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py
index 4337dc83..73fdadaa 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py
@@ -43,9 +43,7 @@ def test_or_has(self):
)
def test_where_has_query(self):
- sql = InboundShipment.where_has(
- "from_country", lambda query: query.where("name", "USA")
- ).to_sql()
+ sql = InboundShipment.where_has("from_country", lambda query: query.where("name", "USA")).to_sql()
self.assertEqual(
sql,
@@ -75,9 +73,7 @@ def test_doesnt_have(self):
def test_or_where_doesnt_have(self):
sql = (
InboundShipment.where("name", "Joe")
- .or_where_doesnt_have(
- "from_country", lambda query: query.where("name", "USA")
- )
+ .or_where_doesnt_have("from_country", lambda query: query.where("name", "USA"))
.to_sql()
)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py
index a1eddcf0..d0d742bb 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py
@@ -60,11 +60,7 @@ def test_or_has_nested(self):
)
def test_relationship_where_has(self):
- sql = (
- User.where("name", "Joe")
- .where_has("profile", lambda q: q.where("profile_id", 1))
- .to_sql()
- )
+ sql = User.where("name", "Joe").where_has("profile", lambda q: q.where("profile_id", 1)).to_sql()
self.assertEqual(
sql,
@@ -87,11 +83,7 @@ def test_relationship_where_has_nested(self):
)
def test_relationship_or_where_has(self):
- sql = (
- User.where("name", "Joe")
- .or_where_has("profile", lambda q: q.where("profile_id", 1))
- .to_sql()
- )
+ sql = User.where("name", "Joe").or_where_has("profile", lambda q: q.where("profile_id", 1)).to_sql()
self.assertEqual(
sql,
@@ -130,9 +122,7 @@ def test_relationship_doesnt_have_nested(self):
)
def test_relationship_where_doesnt_have(self):
- sql = User.where_doesnt_have(
- "profile", lambda q: q.where("profile_id", 1)
- ).to_sql()
+ sql = User.where_doesnt_have("profile", lambda q: q.where("profile_id", 1)).to_sql()
self.assertEqual(
sql,
@@ -140,9 +130,7 @@ def test_relationship_where_doesnt_have(self):
)
def test_relationship_where_doesnt_have_nested(self):
- sql = User.where_doesnt_have(
- "profile.identification", lambda q: q.where("identification_id", 1)
- ).to_sql()
+ sql = User.where_doesnt_have("profile.identification", lambda q: q.where("identification_id", 1)).to_sql()
self.assertEqual(
sql,
@@ -150,9 +138,7 @@ def test_relationship_where_doesnt_have_nested(self):
)
def test_relationship_or_where_doesnt_have(self):
- sql = User.or_where_doesnt_have(
- "profile", lambda q: q.where("profile_id", 1)
- ).to_sql()
+ sql = User.or_where_doesnt_have("profile", lambda q: q.where("profile_id", 1)).to_sql()
self.assertEqual(
sql,
@@ -160,9 +146,7 @@ def test_relationship_or_where_doesnt_have(self):
)
def test_relationship_or_where_doesnt_have_nested(self):
- sql = User.or_where_doesnt_have(
- "profile.identification", lambda q: q.where("identification_id", 1)
- ).to_sql()
+ sql = User.or_where_doesnt_have("profile.identification", lambda q: q.where("identification_id", 1)).to_sql()
self.assertEqual(
sql,
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py
index 09c2ecc8..39fab42f 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py
@@ -34,9 +34,7 @@ def test_can_add_columns1(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
blueprint.to_sql(),
- [
- "CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL, `age` INT(11) NOT NULL)"
- ],
+ ["CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL, `age` INT(11) NOT NULL)"],
)
def test_can_add_tiny_text(self):
@@ -67,9 +65,7 @@ def test_can_create_table_if_not_exists(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
blueprint.to_sql(),
- [
- "CREATE TABLE IF NOT EXISTS `users` (`name` VARCHAR(255) NOT NULL, `age` INT(11) NOT NULL)"
- ],
+ ["CREATE TABLE IF NOT EXISTS `users` (`name` VARCHAR(255) NOT NULL, `age` INT(11) NOT NULL)"],
)
def test_can_add_columns_with_constaint(self):
@@ -94,9 +90,7 @@ def test_add_column_comment(self):
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
blueprint.to_sql(),
- [
- "CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL COMMENT 'A users username')"
- ],
+ ["CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL COMMENT 'A users username')"],
)
def test_can_add_table_comment(self):
@@ -107,9 +101,7 @@ def test_can_add_table_comment(self):
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
blueprint.to_sql(),
- [
- "CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL) COMMENT 'A users table'"
- ],
+ ["CREATE TABLE `users` (`name` VARCHAR(255) NOT NULL) COMMENT 'A users table'"],
)
def test_can_add_columns_with_foreign_key_constaint(self):
@@ -193,11 +185,7 @@ def test_can_add_primary_constraint_without_column_name(self):
self.assertEqual(len(blueprint.table.added_columns), 3)
self.assertEqual(len(blueprint.table.added_constraints), 1)
- self.assertTrue(
- blueprint.to_sql()[0].startswith(
- "CREATE TABLE `users` (`user_id` INT(11) NOT NULL"
- )
- )
+ self.assertTrue(blueprint.to_sql()[0].startswith("CREATE TABLE `users` (`user_id` INT(11) NOT NULL"))
def test_can_advanced_table_creation2(self):
with self.schema.create("users") as blueprint:
@@ -212,9 +200,7 @@ def test_can_advanced_table_creation2(self):
blueprint.string("thumbnail").nullable()
blueprint.integer("premium")
blueprint.integer("author_id").unsigned().nullable()
- blueprint.foreign("author_id").references("id").on("users").on_delete(
- "CASCADE"
- )
+ blueprint.foreign("author_id").references("id").on("users").on_delete("CASCADE")
blueprint.text("description")
blueprint.timestamps()
@@ -233,9 +219,7 @@ def test_can_advanced_table_creation2(self):
def test_can_add_columns_with_foreign_key_constraint_name(self):
with self.schema.create("users") as blueprint:
blueprint.integer("profile_id")
- blueprint.foreign("profile_id", name="profile_foreign").references("id").on(
- "profiles"
- )
+ blueprint.foreign("profile_id", name="profile_foreign").references("id").on("profiles")
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
@@ -392,7 +376,5 @@ def test_can_add_enum(self):
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
blueprint.to_sql(),
- [
- "CREATE TABLE `users` (`status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active')"
- ],
+ ["CREATE TABLE `users` (`status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active')"],
)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py
index a437f0d5..c48ecf62 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py
@@ -26,9 +26,7 @@ def test_can_add_columns(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
- sql = [
- "ALTER TABLE `users` ADD `name` VARCHAR(255) NOT NULL, ADD `age` INT(11) NOT NULL"
- ]
+ sql = ["ALTER TABLE `users` ADD `name` VARCHAR(255) NOT NULL, ADD `age` INT(11) NOT NULL"]
self.assertEqual(blueprint.to_sql(), sql)
@@ -128,9 +126,7 @@ def test_alter_drop1(self):
def test_alter_add_column_and_foreign_key(self):
with self.schema.table("users") as blueprint:
blueprint.unsigned_integer("playlist_id").nullable()
- blueprint.foreign("playlist_id").references("id").on("playlists").on_delete(
- "cascade"
- )
+ blueprint.foreign("playlist_id").references("id").on("playlists").on_delete("cascade")
sql = [
"ALTER TABLE `users` ADD `playlist_id` INT UNSIGNED NULL",
@@ -183,9 +179,7 @@ def test_alter_add_primary(self):
with self.schema.table("users") as blueprint:
blueprint.primary("playlist_id")
- sql = [
- "ALTER TABLE `users` ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)"
- ]
+ sql = ["ALTER TABLE `users` ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)"]
self.assertEqual(blueprint.to_sql(), sql)
@@ -300,9 +294,7 @@ def test_can_add_column_enum(self):
self.assertEqual(len(blueprint.table.added_columns), 1)
- sql = [
- "ALTER TABLE `users` ADD `status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active'"
- ]
+ sql = ["ALTER TABLE `users` ADD `status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active'"]
self.assertEqual(blueprint.to_sql(), sql)
@@ -312,8 +304,6 @@ def test_can_change_column_enum(self):
self.assertEqual(len(blueprint.table.changed_columns), 1)
- sql = [
- "ALTER TABLE `users` MODIFY `status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active'"
- ]
+ sql = ["ALTER TABLE `users` MODIFY `status` ENUM('active', 'inactive') NOT NULL DEFAULT 'active'"]
self.assertEqual(blueprint.to_sql(), sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py
index 89b94d19..0d881582 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py
@@ -31,9 +31,7 @@ def test_can_use_global_scopes_on_select(self):
def test_can_use_global_scopes_on_time(self):
sql = "INSERT INTO `users` (`users`.`name`, `users`.`updated_at`, `users`.`created_at`) VALUES ('Joe'"
- self.assertTrue(
- User.create({"name": "Joe"}, query=True).to_sql().startswith(sql)
- )
+ self.assertTrue(User.create({"name": "Joe"}, query=True).to_sql().startswith(sql))
# def test_can_use_global_scopes_on_inherit(self):
# sql = "SELECT * FROM `user_softs` WHERE `user_softs`.`deleted_at` IS NULL"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py
index 7d6689b4..f8289abc 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py
@@ -48,9 +48,7 @@ def test_restore(self):
def test_force_delete_with_wheres(self):
sql = "DELETE FROM `users` WHERE `users`.`active` = '1'"
- self.assertEqual(
- sql, UserSoft.where("active", 1).force_delete(query=True).to_sql()
- )
+ self.assertEqual(sql, UserSoft.where("active", 1).force_delete(query=True).to_sql())
def test_that_trashed_users_are_not_returned_by_default(self):
sql = "SELECT * FROM `users` WHERE `users`.`deleted_at` IS NULL"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py
index 93dc273e..d77f82d4 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py
@@ -38,84 +38,64 @@ def test_sum(self):
builder = self.get_builder()
builder.sum("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_like(self):
builder = self.get_builder()
builder.where("age", "like", "%name%")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_like(self):
builder = self.get_builder()
builder.where("age", "not like", "%name%")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_max(self):
builder = self.get_builder()
builder.max("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_min(self):
builder = self.get_builder()
builder.min("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_avg(self):
builder = self.get_builder()
builder.avg("age")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_all(self):
builder = self.get_builder()
builder.all()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_get(self):
builder = self.get_builder()
builder.get()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_first(self):
builder = self.get_builder().first(query=True)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select(self):
builder = self.get_builder()
builder.select("name", "email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_add_select_no_table(self):
@@ -131,17 +111,13 @@ def test_add_select_no_table(self):
)
.to_sql()
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_select_raw(self):
builder = self.get_builder()
builder.select_raw("count(email) as email_count")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_create(self):
@@ -150,82 +126,60 @@ def test_create(self):
{"name": "Corentin All", "email": "corentin@yopmail.com"},
query=True,
)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_delete(self):
builder = self.get_builder()
builder.delete("name", "Joe", query=True)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where(self):
builder = self.get_builder()
builder.where("name", "Joe")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_exists(self):
builder = self.get_builder()
builder.where_exists("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_limit(self):
builder = self.get_builder()
builder.limit(5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_offset(self):
builder = self.get_builder()
builder.offset(5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_join(self):
builder = self.get_builder()
builder.join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_left_join(self):
builder = self.get_builder()
builder.left_join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_right_join(self):
builder = self.get_builder()
builder.right_join("profiles", "users.id", "=", "profiles.user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_update(self):
- builder = self.get_builder().update(
- {"name": "Joe", "email": "joe@yopmail.com"}, dry=True
- )
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ builder = self.get_builder().update({"name": "Joe", "email": "joe@yopmail.com"}, dry=True)
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
# def test_increment(self):
@@ -247,104 +201,78 @@ def test_update(self):
def test_count(self):
builder = self.get_builder()
builder.count("id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_order_by_asc(self):
builder = self.get_builder()
builder.order_by("email", "asc")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_order_by_desc(self):
builder = self.get_builder()
builder.order_by("email", "desc")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_column(self):
builder = self.get_builder()
builder.where_column("name", "username")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_in(self):
builder = self.get_builder()
builder.where_not_in("id", [1, 2, 3])
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_between(self):
builder = self.get_builder()
builder.between("id", 2, 5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_not_between(self):
builder = self.get_builder()
builder.not_between("id", 2, 5)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_in(self):
builder = self.get_builder()
builder.where_in("id", [1, 2, 3])
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_null(self):
builder = self.get_builder()
builder.where_null("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_not_null(self):
builder = self.get_builder()
builder.where_not_null("name")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_having(self):
builder = self.get_builder(table="payments")
- builder.select("user_id").avg("salary").group_by("user_id").having(
- "salary", ">=", "1000"
- )
+ builder.select("user_id").avg("salary").group_by("user_id").having("salary", ">=", "1000")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_group_by(self):
builder = self.get_builder(table="payments")
builder.select("user_id").min("salary").group_by("user_id")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_builder_alone(self):
@@ -371,59 +299,42 @@ def test_builder_alone(self):
def test_where_lt(self):
builder = self.get_builder()
builder.where("age", "<", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_lte(self):
builder = self.get_builder()
builder.where("age", "<=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_gt(self):
builder = self.get_builder()
builder.where("age", ">", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_gte(self):
builder = self.get_builder()
builder.where("age", ">=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_where_ne(self):
builder = self.get_builder()
builder.where("age", "!=", "20")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_or_where(self):
builder = self.get_builder()
builder.where("age", "20").or_where("age", "<", 20)
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_can_call_with_schema(self):
builder = self.get_builder()
- sql = (
- builder.table("information_schema.columns")
- .select("table_name")
- .where("table_name", "users")
- .to_sql()
- )
+ sql = builder.table("information_schema.columns").select("table_name").where("table_name", "users").to_sql()
self.assertEqual(
sql,
"""SELECT "information_schema"."columns"."table_name" FROM "information_schema"."columns" WHERE "information_schema"."columns"."table_name" = 'users'""",
@@ -432,33 +343,25 @@ def test_can_call_with_schema(self):
def test_truncate(self):
builder = self.get_builder(dry=True)
sql = builder.truncate()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_truncate_without_foreign_keys(self):
builder = self.get_builder(dry=True)
sql = builder.truncate(foreign_keys=True)
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_shared_lock(self):
builder = self.get_builder(dry=True)
sql = builder.where("votes", ">=", 100).shared_lock().to_sql()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
def test_update_lock(self):
builder = self.get_builder(dry=True)
sql = builder.where("votes", ">=", 100).lock_for_update().to_sql()
- sql_ref = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql_ref = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(sql, sql_ref)
@@ -776,17 +679,13 @@ def shared_lock(self):
def test_latest(self):
builder = self.get_builder()
builder.latest("email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def test_oldest(self):
builder = self.get_builder()
builder.oldest("email")
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(builder.to_sql(), sql)
def oldest(self):
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py
index 690e7253..3a1b5398 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py
@@ -12,31 +12,19 @@ def setUp(self):
def test_can_compile_delete(self):
to_sql = self.builder.delete("id", 1, query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_delete_in(self):
to_sql = self.builder.delete("id", [1, 2, 3], query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_delete_with_where(self):
- to_sql = (
- self.builder.where("age", 20)
- .where("profile", 1)
- .set_action("delete")
- .delete(query=True)
- .to_sql()
- )
+ to_sql = self.builder.where("age", 20).where("profile", 1).set_action("delete").delete(query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py
index 6404d2e3..85ec9138 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py
@@ -12,17 +12,13 @@ def setUp(self):
def test_can_compile_insert(self):
to_sql = self.builder.create({"name": "Joe"}, query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_insert_with_keywords(self):
to_sql = self.builder.create(name="Joe", query=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create(self):
@@ -36,19 +32,13 @@ def test_can_compile_bulk_create(self):
query=True,
).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_bulk_create_qmark(self):
- to_sql = self.builder.bulk_create(
- [{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True
- ).to_qmark()
+ to_sql = self.builder.bulk_create([{"name": "Joe"}, {"name": "Bill"}, {"name": "John"}], query=True).to_qmark()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py
index 475d6eee..81e7bda8 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py
@@ -71,9 +71,7 @@ def can_compile_with_multiple_order_by(self):
"""
self.builder.select('username').order_by('age', 'desc').order_by('name').to_sql()
"""
- return (
- """SELECT "users"."username" FROM "users" ORDER BY "age" DESC, "name" ASC"""
- )
+ return """SELECT "users"."username" FROM "users" ORDER BY "age" DESC, "name" ASC"""
def can_compile_with_group_by(self):
"""
@@ -109,9 +107,7 @@ def can_compile_where_not_null(self):
"""
self.builder.select('username').where_not_null('age').to_sql()
"""
- return (
- """SELECT "users"."username" FROM "users" WHERE "users"."age" IS NOT NULL"""
- )
+ return """SELECT "users"."username" FROM "users" WHERE "users"."age" IS NOT NULL"""
def can_compile_where_raw(self):
"""
@@ -304,11 +300,7 @@ def test_can_compile_where_raw(self):
self.assertEqual(to_sql, """SELECT * FROM "users" WHERE "age" = '18'""")
def test_can_compile_having_raw(self):
- to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .to_sql()
- )
+ to_sql = self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").to_sql()
self.assertEqual(
to_sql,
"""SELECT COUNT(*) as counts FROM "users" HAVING counts > 10""",
@@ -316,10 +308,7 @@ def test_can_compile_having_raw(self):
def test_can_compile_having_raw_order(self):
to_sql = (
- self.builder.select_raw("COUNT(*) as counts")
- .having_raw("counts > 10")
- .order_by_raw("counts DESC")
- .to_sql()
+ self.builder.select_raw("COUNT(*) as counts").having_raw("counts > 10").order_by_raw("counts DESC").to_sql()
)
self.assertEqual(
to_sql,
@@ -327,9 +316,9 @@ def test_can_compile_having_raw_order(self):
)
def test_can_compile_where_raw_and_where_with_multiple_bindings(self):
- query = self.builder.where_raw(
- """ "age" = ? AND "is_admin" = ?""", [18, True]
- ).where("email", "test@example.com")
+ query = self.builder.where_raw(""" "age" = ? AND "is_admin" = ?""", [18, True]).where(
+ "email", "test@example.com"
+ )
self.assertEqual(
query.to_qmark(),
"""SELECT * FROM "users" WHERE "age" = ? AND "is_admin" = ? AND "users"."email" = ?""",
@@ -454,7 +443,9 @@ def can_compile_left_join_clause_with_lambda(self):
),
).to_sql()
"""
- return """SELECT * FROM "users" LEFT JOIN "report_groups" AS "rg" ON "bgt"."fund" = "rg"."fund" OR "bgt" IS NULL"""
+ return (
+ """SELECT * FROM "users" LEFT JOIN "report_groups" AS "rg" ON "bgt"."fund" = "rg"."fund" OR "bgt" IS NULL"""
+ )
def can_compile_right_join_clause_with_lambda(self):
"""
@@ -496,9 +487,7 @@ def where_not_exists_with_lambda(self):
return """SELECT * FROM "users" WHERE NOT EXISTS (SELECT * FROM "users" WHERE "users"."age" = '1')"""
def where_date(self):
- return (
- """SELECT * FROM "users" WHERE DATE("users"."created_at") = '2022-06-01'"""
- )
+ return """SELECT * FROM "users" WHERE DATE("users"."created_at") = '2022-06-01'"""
def or_where_null(self):
return """SELECT * FROM "users" WHERE "users"."column1" IS NULL OR "users"."column2" IS NULL"""
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py
index 76d19f7f..a2c8a546 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py
@@ -9,41 +9,24 @@
class BaseTestCaseUpdateGrammar:
def setUp(self):
- self.builder = QueryBuilder(
- PostgresGrammar, connection_class=PostgresConnection, table="users"
- )
+ self.builder = QueryBuilder(PostgresGrammar, connection_class=PostgresConnection, table="users")
def test_can_compile_update(self):
- to_sql = (
- self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
- )
+ to_sql = self.builder.where("name", "bob").update({"name": "Joe"}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_multiple_update(self):
- to_sql = self.builder.update(
- {"name": "Joe", "email": "user@email.com"}, dry=True
- ).to_sql()
+ to_sql = self.builder.update({"name": "Joe", "email": "user@email.com"}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
def test_can_compile_update_with_multiple_where(self):
- to_sql = (
- self.builder.where("name", "bob")
- .where("age", 20)
- .update({"name": "Joe"}, dry=True)
- .to_sql()
- )
-
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ to_sql = self.builder.where("name", "bob").where("age", 20).update({"name": "Joe"}, dry=True).to_sql()
+
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
# def test_can_compile_increment(self):
@@ -65,9 +48,7 @@ def test_can_compile_update_with_multiple_where(self):
def test_raw_expression(self):
to_sql = self.builder.update({"name": Raw('"username"')}, dry=True).to_sql()
- sql = getattr(
- self, inspect.currentframe().f_code.co_name.replace("test_", "")
- )()
+ sql = getattr(self, inspect.currentframe().f_code.co_name.replace("test_", ""))()
self.assertEqual(to_sql, sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py
index 1dd4b761..5a27c3d3 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py
@@ -26,9 +26,7 @@ def test_can_add_columns(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
blueprint.to_sql(),
- [
- 'CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'
- ],
+ ['CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'],
)
def test_can_add_tiny_text(self):
@@ -36,9 +34,7 @@ def test_can_add_tiny_text(self):
blueprint.tiny_text("description")
self.assertEqual(len(blueprint.table.added_columns), 1)
- self.assertEqual(
- blueprint.to_sql(), ['CREATE TABLE "users" ("description" TEXT NOT NULL)']
- )
+ self.assertEqual(blueprint.to_sql(), ['CREATE TABLE "users" ("description" TEXT NOT NULL)'])
def test_can_add_unsigned_decimal(self):
with self.schema.create("users") as blueprint:
@@ -58,9 +54,7 @@ def test_can_create_table_if_not_exists(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
blueprint.to_sql(),
- [
- 'CREATE TABLE IF NOT EXISTS "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'
- ],
+ ['CREATE TABLE IF NOT EXISTS "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'],
)
def test_can_add_column_comment(self):
@@ -137,9 +131,7 @@ def test_can_add_columns_with_long_text(self):
blueprint.long_text("description")
self.assertEqual(len(blueprint.table.added_columns), 1)
- self.assertEqual(
- blueprint.to_sql(), ['CREATE TABLE "users" ("description" TEXT NOT NULL)']
- )
+ self.assertEqual(blueprint.to_sql(), ['CREATE TABLE "users" ("description" TEXT NOT NULL)'])
def test_can_have_unsigned_columns(self):
with self.schema.create("users") as blueprint:
@@ -219,9 +211,7 @@ def test_can_advanced_table_creation2(self):
blueprint.integer("premium")
blueprint.double("amount").default(0.0)
blueprint.integer("author_id").unsigned().nullable()
- blueprint.foreign("author_id").references("id").on("authors").on_delete(
- "CASCADE"
- )
+ blueprint.foreign("author_id").references("id").on("authors").on_delete("CASCADE")
blueprint.text("description")
blueprint.timestamps()
@@ -261,9 +251,7 @@ def test_can_add_uuid_column(self):
def test_can_add_columns_with_foreign_key_constraint_name(self):
with self.schema.create("users") as blueprint:
blueprint.integer("profile_id")
- blueprint.foreign("profile_id", name="profile_foreign").references("id").on(
- "profiles"
- )
+ blueprint.foreign("profile_id", name="profile_foreign").references("id").on("profiles")
self.assertEqual(len(blueprint.table.added_columns), 1)
self.assertEqual(
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py
index 32a16b55..a37e423d 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py
@@ -26,9 +26,7 @@ def test_can_add_columns(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
- sql = [
- 'ALTER TABLE "users" ADD COLUMN "name" VARCHAR(255) NOT NULL, ADD COLUMN "age" INTEGER NOT NULL'
- ]
+ sql = ['ALTER TABLE "users" ADD COLUMN "name" VARCHAR(255) NOT NULL, ADD COLUMN "age" INTEGER NOT NULL']
self.assertEqual(blueprint.to_sql(), sql)
@@ -98,9 +96,7 @@ def test_alter_drop(self):
def test_alter_add_column_and_foreign_key(self):
with self.schema.table("users") as blueprint:
blueprint.unsigned_integer("playlist_id").nullable()
- blueprint.foreign("playlist_id").references("id").on("playlists").on_delete(
- "cascade"
- )
+ blueprint.foreign("playlist_id").references("id").on("playlists").on_delete("cascade")
sql = [
'ALTER TABLE "users" ADD COLUMN "playlist_id" INTEGER NULL',
@@ -164,9 +160,7 @@ def test_alter_add_primary(self):
with self.schema.table("users") as blueprint:
blueprint.primary("playlist_id")
- sql = [
- 'ALTER TABLE "users" ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)'
- ]
+ sql = ['ALTER TABLE "users" ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)']
self.assertEqual(blueprint.to_sql(), sql)
@@ -245,9 +239,7 @@ def test_change_string(self):
blueprint.table.from_table = table
- sql = [
- 'ALTER TABLE "users" ALTER COLUMN "name" TYPE VARCHAR(93), ALTER COLUMN "name" SET NOT NULL'
- ]
+ sql = ['ALTER TABLE "users" ALTER COLUMN "name" TYPE VARCHAR(93), ALTER COLUMN "name" SET NOT NULL']
self.assertEqual(blueprint.to_sql(), sql)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py
index 2d3e790e..c443bd81 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py
@@ -66,10 +66,10 @@ async def handle_async(self):
await migration.migrate(migration=migration_name)
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
return self.container.use_base_path(migration_directory)
@@ -79,9 +79,7 @@ def confirm_to_proceed(self) -> None:
if os.getenv("APP_ENV") == "production" and not self.option("force"):
answer = ""
while answer not in ["y", "n"]:
- answer = input(
- "Do you want to run migrations in PRODUCTION ? (y/n)\n"
- ).lower()
+ answer = input("Do you want to run migrations in PRODUCTION ? (y/n)\n").lower()
if answer != "y":
self.info("Migrations cancelled")
exit(0)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py
index ed6a2610..92c39155 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py
@@ -73,9 +73,7 @@ async def handle_async(self):
seeder_seeded = seeder_file.split(".")[-1]
elif table != "None":
- seeder_file = (
- f"{underscore(table)}_table_seeder.{camelize(table)}TableSeeder"
- )
+ seeder_file = f"{underscore(table)}_table_seeder.{camelize(table)}TableSeeder"
await seeder.run_specific_seed(seeder_file)
seeder_seeded = f"{camelize(table)}TableSeeder"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py
index 4e32b378..0aa17efb 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py
@@ -14,12 +14,8 @@ class MakeMigrationCommand(Command):
arguments = [argument("name", description="The name of the migration")]
options = [
- option(
- "create", "c", flag=False, default="None", description="The table to create"
- ),
- option(
- "table", "t", flag=False, default="None", description="The table to alter"
- ),
+ option("create", "c", flag=False, default="None", description="The table to create"),
+ option("table", "t", flag=False, default="None", description="The table to alter"),
option(
"directory",
"d",
@@ -63,6 +59,4 @@ def handle(self):
with open(os.path.join(os.getcwd(), migration_directory, file_name), "w") as fp:
fp.write(output)
- self.info(
- f"Migration file created: {os.path.join(migration_directory, file_name)}"
- )
+ self.info(f"Migration file created: {os.path.join(migration_directory, file_name)}")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py
index d0fafecb..a0662274 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py
@@ -31,9 +31,7 @@ class MakeModelCommand(Command):
description="If the migration file should modify an existing table",
flag=True,
),
- option(
- "pep", "p", description="Makes the file into pep 8 standards", flag=True
- ),
+ option("pep", "p", description="Makes the file into pep 8 standards", flag=True),
option(
"directory",
"d",
@@ -62,9 +60,7 @@ def handle(self):
model_directory = self.option("directory")
- with open(
- os.path.join(pathlib.Path(__file__).parent.absolute(), "stubs/model.stub")
- ) as fp:
+ with open(os.path.join(pathlib.Path(__file__).parent.absolute(), "stubs/model.stub")) as fp:
output = fp.read()
output = output.replace("__CLASS__", camelize(name))
@@ -76,9 +72,7 @@ def handle(self):
full_directory_path = os.path.join(os.getcwd(), model_directory)
if os.path.exists(os.path.join(full_directory_path, file_name)):
- self.line(
- f'Model "{name}" Already Exists ({full_directory_path}/{file_name})'
- )
+ self.line(f'Model "{name}" Already Exists ({full_directory_path}/{file_name})')
return
os.makedirs(os.path.dirname(os.path.join(full_directory_path)), exist_ok=True)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py
index 38401ea6..d938706d 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py
@@ -37,9 +37,7 @@ def handle(self):
schema = DB.get_schema_builder(self.option("connection"))
if not schema.has_table(table):
- return self.line_error(
- f"There is no such table {table} for this connection."
- )
+ return self.line_error(f"There is no such table {table} for this connection.")
self.info(f"Model Docstring for table: {table}")
print('"""')
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py
index da2ea3e8..0ff982ea 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py
@@ -36,11 +36,7 @@ def handle(self):
observer_directory = self.option("directory")
- with open(
- os.path.join(
- pathlib.Path(__file__).parent.absolute(), "stubs/observer.stub"
- )
- ) as fp:
+ with open(os.path.join(pathlib.Path(__file__).parent.absolute(), "stubs/observer.stub")) as fp:
output = fp.read()
output = output.replace("__CLASS__", camelize(name))
output = output.replace("__MODEL_VARIABLE__", underscore(model))
@@ -51,9 +47,7 @@ def handle(self):
full_directory_path = os.path.join(os.getcwd(), observer_directory)
if os.path.exists(os.path.join(full_directory_path, file_name)):
- self.line(
- f'Observer "{name}" Already Exists ({full_directory_path}/{file_name})'
- )
+ self.line(f'Observer "{name}" Already Exists ({full_directory_path}/{file_name})')
return
os.makedirs(os.path.join(full_directory_path), exist_ok=True)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py
index 4aa8d494..c0d0040f 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py
@@ -72,10 +72,10 @@ async def handle_async(self):
)
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
return self.container.use_base_path(migration_directory)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py
index fcfd369f..6be6bc41 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py
@@ -73,10 +73,10 @@ async def handle_async(self):
)
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
return self.container.use_base_path(migration_directory)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py
index 8aac6687..1832aa9b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py
@@ -48,10 +48,10 @@ async def handle_async(self):
await migration.reset(self.option("migration"))
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
- return self.container.use_base_path(migration_directory)
\ No newline at end of file
+ return self.container.use_base_path(migration_directory)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py
index 1d359163..7eab0728 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py
@@ -48,10 +48,10 @@ async def handle_async(self):
await migration.rollback(migration=self.option("migration"))
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
- return self.container.use_base_path(migration_directory)
\ No newline at end of file
+ return self.container.use_base_path(migration_directory)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py
index 6f8ed8dd..5ac18f86 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py
@@ -71,10 +71,10 @@ async def handle_async(self):
table.render()
def resolve_migration_path(self) -> str:
- path = self.option('directory')
+ path = self.option("directory")
- config = self.container.make('config').get('database.migrations')
- default_directory = config.get('directory')
+ config = self.container.make("config").get("database.migrations")
+ default_directory = config.get("directory")
migration_directory = path or default_directory
- return self.container.use_base_path(migration_directory)
\ No newline at end of file
+ return self.container.use_base_path(migration_directory)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py
index b13b7eea..c23ca80f 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py
@@ -42,9 +42,7 @@ def handle(self):
connection = resolver.get_connection_details()["default"]
config = resolver.get_connection_information(connection)
if not config.get("full_details"):
- self.line(
- f"Connection configuration for '{connection}' not found !"
- )
+ self.line(f"Connection configuration for '{connection}' not found !")
exit(-1)
command, env = self.get_command(config)
@@ -78,19 +76,14 @@ def get_command(self, config):
try:
get_driver_args = getattr(self, f"get_{driver}_args")
except AttributeError:
- self.line(
- f"Connecting with driver '{driver}' is not implemented !"
- )
+ self.line(f"Connecting with driver '{driver}' is not implemented !")
exit(-1)
args, options = get_driver_args(config)
# process positional arguments
args = " ".join(args)
# process optional arguments
options = self.remove_empty_options(options)
- options_string = " ".join(
- f"{option} {value}" if value else option
- for option, value in options.items()
- )
+ options_string = " ".join(f"{option} {value}" if value else option for option, value in options.items())
# finally build command string
command = program
if args:
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/connections/factory.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/connections/factory.py
index 2494b112..6c2b1586 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/connections/factory.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/connections/factory.py
@@ -38,6 +38,7 @@ def create_engine(cls, cfg: dict) -> AsyncEngine:
url = cls.build_url(cfg)
kwargs: dict[str, Any] = {"echo": True}
from fastapi_startkit.application import app
+
if app().is_testing():
kwargs["poolclass"] = NullPool
elif cfg["driver"] == "sqlite":
@@ -57,4 +58,3 @@ def make(self, config: dict, name: str) -> type[Connection]:
return MySQLConnection(engine, config)
raise ValueError(f"Unsupported driver: {driver}")
-
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/expressions/expressions.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/expressions/expressions.py
index 7eb77699..4bef40c4 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/expressions/expressions.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/expressions/expressions.py
@@ -168,9 +168,7 @@ def on_value(self, column, *args):
def or_on_value(self, column, *args):
equality, value = self._extract_operator_value(*args)
- self.on_clauses += (
- (OnValueClause(column, equality, value, "value", operator="or")),
- )
+ self.on_clauses += ((OnValueClause(column, equality, value, "value", operator="or")),)
return self
def on_null(self, column):
@@ -218,9 +216,7 @@ def or_on_not_null(self, column: str):
Returns:
self
"""
- self.on_clauses += (
- (OnValueClause(column, "=", True, "NOT NULL", operator="or")),
- )
+ self.on_clauses += ((OnValueClause(column, "=", True, "NOT NULL", operator="or")),)
return self
@deprecated("Using where() in a Join clause has been superceded by on_value()")
@@ -241,10 +237,7 @@ def _extract_operator_value(self, *args):
value = args[0]
if operator not in operators:
- raise ValueError(
- "Invalid comparison operator. The operator can be %s"
- % ", ".join(operators)
- )
+ raise ValueError("Invalid comparison operator. The operator can be %s" % ", ".join(operators))
return operator, value
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/migrations/Migrator.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/migrations/Migrator.py
index 37870bc1..719d5a8b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/migrations/Migrator.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/migrations/Migrator.py
@@ -16,10 +16,10 @@ class Migrator:
db_manager: "DatabaseManager"
def __init__(
- self,
- migration_directory: str,
- connection="default",
- command_class=None,
+ self,
+ migration_directory: str,
+ connection="default",
+ command_class=None,
):
self.connection = connection
self.migration_directory = migration_directory
@@ -42,9 +42,7 @@ async def get_unran_migrations(self):
all_migrations = [
f.replace(".py", "")
for f in listdir(directory_path)
- if isfile(join(directory_path, f))
- and f != "__init__.py"
- and not f.startswith(".")
+ if isfile(join(directory_path, f)) and f != "__init__.py" and not f.startswith(".")
]
all_migrations.sort()
unran_migrations = []
@@ -57,16 +55,12 @@ async def get_unran_migrations(self):
async def get_rollback_migrations(self):
all_migrations = await self.migration_model.all()
return (
- await self.migration_model.where("batch", all_migrations.max("batch"))
- .order_by("id", "desc")
- .get()
+ await self.migration_model.where("batch", all_migrations.max("batch")).order_by("id", "desc").get()
).pluck("migration")
async def get_all_migrations(self, reverse=False):
if reverse:
- return (
- await self.migration_model.new_query().order_by("id", "desc").get()
- ).pluck("migration")
+ return (await self.migration_model.new_query().order_by("id", "desc").get()).pluck("migration")
return (await self.migration_model.all()).pluck("migration")
@@ -78,12 +72,13 @@ async def delete_migration(self, file_path):
def locate(self, file_name):
import sys
+
migration_name = camelize("_".join(file_name.split("_")[4:]).replace(".py", ""))
file_name = file_name.replace(".py", "")
migration_directory = str(self.migration_directory)
for sys_path in sorted(sys.path, key=len, reverse=True):
if sys_path and migration_directory.startswith(sys_path):
- migration_directory = migration_directory[len(sys_path):].lstrip("/\\")
+ migration_directory = migration_directory[len(sys_path) :].lstrip("/\\")
break
migration_directory = migration_directory.replace("/", ".").replace("\\", ".")
return locate(f"{migration_directory}.{file_name}.{migration_name}")
@@ -93,18 +88,14 @@ async def get_ran_migrations(self):
all_migrations = [
f.replace(".py", "")
for f in listdir(directory_path)
- if isfile(join(directory_path, f))
- and f != "__init__.py"
- and not f.startswith(".")
+ if isfile(join(directory_path, f)) and f != "__init__.py" and not f.startswith(".")
]
all_migrations.sort()
ran = []
database_migrations = await self.migration_model.all()
for migration in all_migrations:
- matched_migration = database_migrations.where(
- "migration", migration
- ).first()
+ matched_migration = database_migrations.where("migration", migration).first()
if matched_migration:
ran.append(
{
@@ -133,9 +124,7 @@ async def migrate(self, migration="all", output=False):
self.last_migrations_ran.append(migration)
if self.command_class:
- self.command_class.line(
- f"Migrating: {migration}"
- )
+ self.command_class.line(f"Migrating: {migration}")
migration_class = migration_class(connection=self.connection, schema=self.schema)
@@ -159,13 +148,9 @@ async def migrate(self, migration="all", output=False):
print(migration_class.schema._blueprint.to_sql())
if self.command_class:
- self.command_class.line(
- f"Migrated: {migration} ({duration}s)"
- )
+ self.command_class.line(f"Migrated: {migration} ({duration}s)")
- await self.migration_model.create(
- {"batch": batch, "migration": migration.replace(".py", "")}
- )
+ await self.migration_model.create({"batch": batch, "migration": migration.replace(".py", "")})
async def rollback(self, migration="all", output=False):
default_migrations = await self.get_rollback_migrations()
@@ -176,9 +161,7 @@ async def rollback(self, migration="all", output=False):
migration = migration.replace(".py", "")
if self.command_class:
- self.command_class.line(
- f"Rolling back: {migration}"
- )
+ self.command_class.line(f"Rolling back: {migration}")
try:
migration_class = self.locate(migration)
@@ -186,9 +169,7 @@ async def rollback(self, migration="all", output=False):
self.command_class.line(f"Not Found: {migration}")
continue
- migration_class = migration_class(
- connection=self.connection, schema=self.schema
- )
+ migration_class = migration_class(connection=self.connection, schema=self.schema)
if output:
migration_class.schema.dry()
@@ -201,10 +182,7 @@ async def rollback(self, migration="all", output=False):
if self.command_class:
table = self.command_class.table()
table.set_headers(["SQL"])
- if (
- hasattr(migration_class.schema, "_blueprint")
- and migration_class.schema._blueprint
- ):
+ if hasattr(migration_class.schema, "_blueprint") and migration_class.schema._blueprint:
sql = migration_class.schema._blueprint.to_sql()
if isinstance(sql, list):
sql = ",".join(sql)
@@ -220,19 +198,13 @@ async def rollback(self, migration="all", output=False):
await self.delete_migration(migration)
if self.command_class:
- self.command_class.line(
- f"Rolled back: {migration} ({duration}s)"
- )
+ self.command_class.line(f"Rolled back: {migration} ({duration}s)")
async def delete_migrations(self, migrations=None):
- return await self.migration_model.where_in(
- "migration", migrations or []
- ).delete()
+ return await self.migration_model.where_in("migration", migrations or []).delete()
async def delete_last_batch(self):
- return await self.migration_model.where(
- "batch", await self.get_last_batch_number()
- ).delete()
+ return await self.migration_model.where("batch", await self.get_last_batch_number()).delete()
async def reset(self, migration="all"):
default_migrations = await self.get_all_migrations(reverse=True)
@@ -246,14 +218,10 @@ async def reset(self, migration="all"):
for migration in migrations:
if self.command_class:
- self.command_class.line(
- f"Rolling back: {migration}"
- )
+ self.command_class.line(f"Rolling back: {migration}")
try:
- migration_instance = self.locate(migration)(
- connection=self.connection, schema=self.schema
- )
+ migration_instance = self.locate(migration)(connection=self.connection, schema=self.schema)
await migration_instance.down()
except TypeError:
self.command_class.line(f"Not Found: {migration}")
@@ -264,9 +232,7 @@ async def reset(self, migration="all"):
await self.delete_migration(migration)
if self.command_class:
- self.command_class.line(
- f"Rolled back: {migration}"
- )
+ self.command_class.line(f"Rolled back: {migration}")
await self.delete_migrations([migration])
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/attribute.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/attribute.py
index fd59ae18..a0249f1e 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/attribute.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/attribute.py
@@ -29,11 +29,7 @@ def __init__(self, attributes: dict = None, **kwargs):
def __setattr__(self, key: str, value):
# Before _dirty_attributes is initialised (early __init__), or for
# internal/meta attributes, fall back to normal object assignment.
- if (
- key.startswith("_")
- or key in self._META_ATTRIBUTES
- or "_dirty_attributes" not in self.__dict__
- ):
+ if key.startswith("_") or key in self._META_ATTRIBUTES or "_dirty_attributes" not in self.__dict__:
super().__setattr__(key, value)
else:
self.set_attribute(key, value)
@@ -65,10 +61,7 @@ def get_attribute(self, key: str):
if "_attributes" in self.__dict__ and key in self.__dict__["_attributes"]:
value = self.__dict__["_attributes"][key]
- if (
- "_dirty_attributes" in self.__dict__
- and key in self.__dict__["_dirty_attributes"]
- ):
+ if "_dirty_attributes" in self.__dict__ and key in self.__dict__["_dirty_attributes"]:
value = self.__dict__["_dirty_attributes"][key]
return self.caster.get(key, value)
@@ -98,11 +91,7 @@ def is_dirty(self) -> bool:
return bool(self.get_dirty())
def get_dirty(self) -> dict:
- return {
- key: value
- for key, value in self.get_attributes().items()
- if not self.original_is_equivalent(key)
- }
+ return {key: value for key, value in self.get_attributes().items() if not self.original_is_equivalent(key)}
def get_attributes_for_insert(self) -> dict:
# _dirty_attributes already went through set_attribute (casts applied on assignment).
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/builder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/builder.py
index 37071585..d888e25b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/builder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/builder.py
@@ -105,11 +105,7 @@ async def get_models(self, columns=None):
models = await self.connection.select(self.to_qmark(), self.get_bindings())
collection = self._model.hydrate(models)
- if (
- self._eager_relation.eagers
- or self._eager_relation.nested_eagers
- or self._eager_relation.callback_eagers
- ):
+ if self._eager_relation.eagers or self._eager_relation.nested_eagers or self._eager_relation.callback_eagers:
await self._load_eagers(collection, self._model)
return collection
@@ -285,9 +281,9 @@ async def insert(self, values: dict | list) -> int | None:
return await self.connection.insert(sql, bindings)
async def insert_get_id(
- self,
- values: dict[str, Any] | list[dict[str, Any]],
- sequences: str | None = None,
+ self,
+ values: dict[str, Any] | list[dict[str, Any]],
+ sequences: str | None = None,
) -> int | None:
sql = self.grammar().compile_insert_get_id(self, values, sequences)
bindings = self.clean_bindings(values)
@@ -342,25 +338,19 @@ def where(self, column, *args):
if inspect.isfunction(column):
builder = column(self.new())
- self._wheres += (
- (QueryExpression(None, operator, SubGroupExpression(builder))),
- )
+ self._wheres += ((QueryExpression(None, operator, SubGroupExpression(builder))),)
elif isinstance(column, dict):
for key, value in column.items():
self._wheres += ((QueryExpression(key, "=", value, "value")),)
elif isinstance(value, QueryBuilder):
- self._wheres += (
- (QueryExpression(column, operator, SubSelectExpression(value))),
- )
+ self._wheres += ((QueryExpression(column, operator, SubSelectExpression(value))),)
else:
self._wheres += ((QueryExpression(column, operator, value, "value")),)
return self
def or_where(self, column, *args) -> "QueryBuilder":
operator, value = self._extract_operator_value(*args)
- self._wheres += (
- (QueryExpression(column, operator, value, "value", keyword="or")),
- )
+ self._wheres += ((QueryExpression(column, operator, value, "value", keyword="or")),)
return self
def join(self, table: str, column1: str, equality: str, column2: str, clause: str = "join") -> "QueryBuilder":
@@ -383,9 +373,7 @@ def where_exists(self, builder: "QueryBuilder") -> "QueryBuilder":
return self
def or_where_exists(self, builder: "QueryBuilder") -> "QueryBuilder":
- self._wheres += (
- QueryExpression(None, "EXISTS", SubSelectExpression(builder), keyword="or"),
- )
+ self._wheres += (QueryExpression(None, "EXISTS", SubSelectExpression(builder), keyword="or"),)
return self
def where_has(self, relation: str, callback=None) -> "QueryBuilder":
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/caster.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/caster.py
index 3153cc08..7f2172d9 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/caster.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/caster.py
@@ -209,15 +209,11 @@ def build_casts(cls, model):
annotations[name] = hint
annotations = {
- k: v
- for k, v in annotations.items()
- if not isinstance(getattr(model, k, None), BaseRelationship)
+ k: v for k, v in annotations.items() if not isinstance(getattr(model, k, None), BaseRelationship)
}
# Ignore the builder
- annotations = {
- k: v for k, v in annotations.items() if k not in cls.IGNORE_CASTS
- }
+ annotations = {k: v for k, v in annotations.items() if k not in cls.IGNORE_CASTS}
from .fields import ModelField, FieldDescriptor
# 1. Collect all potential fields (annotations + descriptors)
@@ -238,11 +234,7 @@ def build_casts(cls, model):
casts[field_name] = ModelCast(model_class=typ)
continue
- field_info = (
- descriptor.field_info
- if isinstance(descriptor, FieldDescriptor)
- else None
- )
+ field_info = descriptor.field_info if isinstance(descriptor, FieldDescriptor) else None
caster = Caster.normalize_type(typ)
if caster in Caster.cast_class_map:
@@ -264,12 +256,7 @@ def normalize_type(t):
return "bool"
if t is dict or t is list:
return "json"
- if (
- t is pendulum.DateTime
- or t is datetime.datetime
- or t is datetime.date
- or t is Carbon
- ):
+ if t is pendulum.DateTime or t is datetime.datetime or t is datetime.date or t is Carbon:
return "date"
if t is datetime.time:
return "time"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/model.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/model.py
index 66c99176..6099aa8a 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/model.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/model.py
@@ -174,15 +174,11 @@ def query(cls):
return cls().new_query()
@classmethod
- async def first_or_create(
- cls, search: dict, attributes: dict | None = None
- ) -> "Model":
+ async def first_or_create(cls, search: dict, attributes: dict | None = None) -> "Model":
return await cls.query().first_or_create(search, attributes)
@classmethod
- async def update_or_create(
- cls, search: dict, attributes: dict | None = None
- ) -> "Model":
+ async def update_or_create(cls, search: dict, attributes: dict | None = None) -> "Model":
return await cls.query().update_or_create(search, attributes)
@classmethod
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/observer.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/observer.py
index 0ce5a7ca..d1ed499e 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/observer.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/observer.py
@@ -25,6 +25,4 @@ def creating(self, model):
def updating(self, model):
if model.__timestamps__:
- model.builder._updates += (
- UpdateQueryExpression({self.field_name: pendulum.now(self.tz)}),
- )
+ model.builder._updates += (UpdateQueryExpression({self.field_name: pendulum.now(self.tz)}),)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/registry.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/registry.py
index 81dfca0d..a5827762 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/registry.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/models/registry.py
@@ -6,9 +6,7 @@ class Registry:
@classmethod
def register(cls, model: type):
name = model.__name__
- morph_name = (
- model.get_morph_class() if hasattr(model, "get_morph_class") else name
- )
+ morph_name = model.get_morph_class() if hasattr(model, "get_morph_class") else name
cls._models[name] = model
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py
index 15d4b7b8..9f81a926 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py
@@ -33,13 +33,7 @@ def register(self):
Migrator.db_manager = db
def boot(self) -> None:
- self.publishes(
- {
- Path(__file__)
- .resolve()
- .parent.parent.joinpath("config/database.py"): "config/database.py"
- }
- )
+ self.publishes({Path(__file__).resolve().parent.parent.joinpath("config/database.py"): "config/database.py"})
self.commands(
[
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py
index e0721662..fde3a887 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py
@@ -52,9 +52,7 @@ async def _load_eagers(self, models, model):
relation_key=eager,
)
- async def _register_relationships_to_model(
- self, related, related_result, models, relation_key
- ):
+ async def _register_relationships_to_model(self, related, related_result, models, relation_key):
if related_result and isinstance(models, Collection):
map_related = self._map_related(related_result, related)
for model in models:
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py
index 7e79575b..44822a51 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py
@@ -165,7 +165,7 @@ def _compile_insert(self, qmark=False):
return self
- def compile_insert(self, query: QueryBuilder, values:dict[str, Any] | list[dict[str, Any]]):
+ def compile_insert(self, query: QueryBuilder, values: dict[str, Any] | list[dict[str, Any]]):
table = self.wrap_table(query._table)
if not values:
@@ -178,10 +178,7 @@ def compile_insert(self, query: QueryBuilder, values:dict[str, Any] | list[dict[
columns = self.columnize_bulk_columns(list(values[0].keys()))
- parameters = ", ".join(
- "({})".format(", ".join("?" for _ in record))
- for record in values
- )
+ parameters = ", ".join("({})".format(", ".join("?" for _ in record)) for record in values)
return f"INSERT INTO {table} ({columns}) VALUES {parameters}"
@@ -193,7 +190,6 @@ def compile_insert_get_id(
) -> str:
return self.compile_insert(query, values)
-
def _compile_bulk_create(self, qmark=False):
"""Compiles an insert expression.
@@ -211,9 +207,7 @@ def _compile_bulk_create(self, qmark=False):
return self
def columnize_bulk_columns(self, columns=[]):
- return ", ".join(
- self.column_string().format(column=x, separator="") for x in columns
- ).rstrip(",")
+ return ", ".join(self.column_string().format(column=x, separator="") for x in columns).rstrip(",")
def columnize_bulk_values(self, columns=[], qmark=False):
sql = ""
@@ -223,24 +217,14 @@ def columnize_bulk_values(self, columns=[], qmark=False):
for y in x:
if qmark:
self.add_binding(y)
- inner += (
- "?, "
- if qmark
- else self.value_string().format(value=y, separator=", ")
- )
+ inner += "?, " if qmark else self.value_string().format(value=y, separator=", ")
inner = inner.rstrip(", ")
sql += self.process_value_string().format(value=inner, separator=", ")
else:
if qmark:
self.add_binding(x)
- sql += (
- "?, "
- if qmark
- else self.process_value_string().format(
- value="?" if qmark else x, separator=", "
- )
- )
+ sql += "?, " if qmark else self.process_value_string().format(value="?" if qmark else x, separator=", ")
return sql.rstrip(", ")
@@ -313,13 +297,13 @@ def process_joins(self, qmark=False):
self.add_binding(clause.value)
else:
value = self._compile_value(clause.value)
- on_string += f"{keyword} {self._table_column_string(clause.column)} {clause.equality} {value} "
+ on_string += (
+ f"{keyword} {self._table_column_string(clause.column)} {clause.equality} {value} "
+ )
sql += self.join_string().format(
foreign_table=self.process_table(join.table),
- alias=(
- f" AS {self.process_table(join.alias)}" if join.alias else ""
- ),
+ alias=(f" AS {self.process_table(join.alias)}" if join.alias else ""),
on=on_string,
keyword=self.join_keywords[join.clause],
)
@@ -359,11 +343,7 @@ def _compile_key_value_equals(self, qmark=False):
else:
sql += sql_string.format(
column=self._table_column_string(key),
- value=(
- self.value_string().format(value=value, separator="")
- if not qmark
- else "?"
- ),
+ value=(self.value_string().format(value=value, separator="") if not qmark else "?"),
separator=", ",
)
@@ -372,11 +352,7 @@ def _compile_key_value_equals(self, qmark=False):
else:
sql += sql_string.format(
column=self._table_column_string(column),
- value=(
- self.value_string().format(value=value, separator=", ")
- if not qmark
- else "?"
- ),
+ value=(self.value_string().format(value=value, separator=", ") if not qmark else "?"),
separator=", ",
)
if qmark:
@@ -404,9 +380,7 @@ def process_aggregates(self):
sql += (
aggregate_string.format(
aggregate_function=aggregate_function,
- column=(
- "*" if column == "*" else self._table_column_string(column)
- ),
+ column=("*" if column == "*" else self._table_column_string(column)),
alias=self.process_alias(aggregates.alias or column),
)
+ ", "
@@ -427,9 +401,7 @@ def process_order_by(self):
if order_bys.raw:
order_crit += order_bys.column
if not isinstance(order_bys.bindings, (list, tuple)):
- raise ValueError(
- f"Bindings must be tuple or list. Received {type(order_bys.bindings)}"
- )
+ raise ValueError(f"Bindings must be tuple or list. Received {type(order_bys.bindings)}")
if order_bys.bindings:
self.add_binding(*order_bys.bindings)
@@ -443,12 +415,8 @@ def process_order_by(self):
if "." in column:
column_string = self._table_column_string(column)
else:
- column_string = self.column_string().format(
- column=column, separator=""
- )
- order_crit += self.order_by_format().format(
- column=column_string, direction=direction.upper()
- )
+ column_string = self.column_string().format(column=column, separator="")
+ order_crit += self.order_by_format().format(column=column_string, direction=direction.upper())
sql += self.order_by_string().format(order_columns=order_crit)
return sql
@@ -618,14 +586,10 @@ def process_wheres(self, query=None, qmark=False, strip_first_where=False):
"""If we have a raw query we just want to use the query supplied
and don't need to compile anything.
"""
- sql += self.raw_query_string().format(
- keyword=keyword, query=where.column
- )
+ sql += self.raw_query_string().format(keyword=keyword, query=where.column)
if not isinstance(where.bindings, (list, tuple)):
- raise ValueError(
- f"Bindings must be tuple or list. Received {type(where.bindings)}"
- )
+ raise ValueError(f"Bindings must be tuple or list. Received {type(where.bindings)}")
if where.bindings:
self.add_binding(*where.bindings)
@@ -670,9 +634,7 @@ def process_wheres(self, query=None, qmark=False, strip_first_where=False):
keyword=keyword,
)
elif value_type == "value_equals":
- sql_string = self.value_equal_string().format(
- value1=where.column, value2=where.value, keyword=keyword
- )
+ sql_string = self.value_equal_string().format(value1=where.column, value2=where.value, keyword=keyword)
elif value_type == "NULL":
sql_string = self.where_null_string()
elif value_type == "DATE":
@@ -700,11 +662,7 @@ def process_wheres(self, query=None, qmark=False, strip_first_where=False):
grammar = value.builder.get_grammar()
query_value = (
self.subquery_string()
- .format(
- query=grammar.process_wheres(
- qmark=qmark, strip_first_where=True
- )
- )
+ .format(query=grammar.process_wheres(qmark=qmark, strip_first_where=True))
.replace("( ", "(")
)
if grammar._bindings:
@@ -725,9 +683,7 @@ def process_wheres(self, query=None, qmark=False, strip_first_where=False):
query_value += "?, "
self.add_binding(val)
else:
- query_value += self.value_string().format(
- value=val, separator=","
- )
+ query_value += self.value_string().format(value=val, separator=",")
query_value = query_value.rstrip(",").rstrip(", ") + ")"
elif value is True and value_type != "NOT NULL":
sql_string = self.get_true_column_string()
@@ -932,9 +888,7 @@ def process_column(self, column, separator=""):
table = None
if column and "." in column:
table, column = column.split(".")
- return self.column_string().format(
- column=column, separator=separator, table=table or self.table
- )
+ return self.column_string().format(column=column, separator=separator, table=table or self.table)
def _table_column_string(self, column, alias=None, separator=""):
"""Compiles a column into the column syntax.
@@ -1003,9 +957,7 @@ def drop_table_if_exists(self, table):
Returns:
self
"""
- self._sql = self.drop_table_if_exists_string().format(
- table=self.process_column(table)
- )
+ self._sql = self.drop_table_if_exists_string().format(table=self.process_column(table))
return self
def rename_table(self, current_table_name, new_table_name):
@@ -1033,9 +985,7 @@ def truncate_table(self, table, foreign_keys=False):
Returns:
self
"""
- raise NotImplementedError(
- f"'{self.__class__.__name__}' does not support truncating"
- )
+ raise NotImplementedError(f"'{self.__class__.__name__}' does not support truncating")
def where_regexp_string(self):
return "{keyword} {column} REGEXP {value}"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py
index e8eb6a53..4ee2c167 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py
@@ -120,14 +120,10 @@ def process_table(self, table):
if not table:
return ""
if isinstance(table, str):
- return ".".join(
- self.table_string().format(table=t) for t in table.split(".")
- )
+ return ".".join(self.table_string().format(table=t) for t in table.split("."))
if table.raw:
return table.name
- return ".".join(
- self.table_string().format(table=t) for t in table.name.split(".")
- )
+ return ".".join(self.table_string().format(table=t) for t in table.name.split("."))
def subquery_alias_string(self):
return "AS {alias}"
@@ -151,7 +147,9 @@ def column_exists_string(self):
return "SHOW COLUMNS FROM {table} LIKE {value}"
def table_exists_string(self):
- return "SELECT * from information_schema.tables where table_name='{clean_table}' AND table_schema = '{database}'"
+ return (
+ "SELECT * from information_schema.tables where table_name='{clean_table}' AND table_schema = '{database}'"
+ )
def create_column_length(self, column_type):
return "({length})"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py
index f40ba826..b4416353 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py
@@ -6,6 +6,7 @@
if TYPE_CHECKING:
from ...models.builder import QueryBuilder
+
class PostgresGrammar(BaseGrammar):
"""Postgres grammar class."""
@@ -110,9 +111,7 @@ def column_exists_string(self):
return "SELECT column_name FROM information_schema.columns WHERE table_name='{clean_table}' AND column_name={value}"
def table_exists_string(self):
- return (
- "SELECT * FROM information_schema.tables WHERE table_name='{clean_table}'"
- )
+ return "SELECT * FROM information_schema.tables WHERE table_name='{clean_table}'"
def create_column_length(self, column_type):
if column_type in self.types_without_lengths:
@@ -209,15 +208,12 @@ def truncate_table(self, table, foreign_keys=False):
return f"TRUNCATE TABLE {self.wrap_table(table)}"
def compile_insert_get_id(
- self,
- query: "QueryBuilder",
- values: dict[str, Any] | list[dict[str, Any]],
- sequences: str | None = None,
+ self,
+ query: "QueryBuilder",
+ values: dict[str, Any] | list[dict[str, Any]],
+ sequences: str | None = None,
) -> str:
- return (
- self.compile_insert(query, values)
- + f" RETURNING {self.wrap_table(sequences or 'id')}"
- )
+ return self.compile_insert(query, values) + f" RETURNING {self.wrap_table(sequences or 'id')}"
def compile_random(self):
return "random()"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py
index 2853ea3a..191c1591 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py
@@ -107,9 +107,7 @@ def column_exists_string(self):
return "SELECT column_name FROM information_schema.columns WHERE table_name='{clean_table}' and column_name={value}"
def table_exists_string(self):
- return (
- "SELECT name FROM sqlite_master WHERE type='table' AND name='{clean_table}'"
- )
+ return "SELECT name FROM sqlite_master WHERE type='table' AND name='{clean_table}'"
def to_sql(self):
"""Cleans up the SQL string and returns the SQL
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/support.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/support.py
index 04f884a6..e6829ece 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/support.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/query/support.py
@@ -29,9 +29,6 @@ def _extract_operator_value(*args):
value = args[0]
if operator not in operators:
- raise ValueError(
- "Invalid comparison operator. The operator can be %s"
- % ", ".join(operators)
- )
+ raise ValueError("Invalid comparison operator. The operator can be %s" % ", ".join(operators))
return operator, value
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py
index fb16e4c7..e6123e2b 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py
@@ -4,9 +4,7 @@
class BaseRelationship:
def __init__(self, fn: str | list[str], local_key=None, foreign_key=None):
if not isinstance(fn, str):
- raise TypeError(
- f"Relationship {self.__class__.__name__} expects a string as the first argument"
- )
+ raise TypeError(f"Relationship {self.__class__.__name__} expects a string as the first argument")
fn_str: str = fn # For type checking
self.fn = lambda: registry.Registry.resolve(fn_str)
@@ -61,16 +59,12 @@ def apply_query(self, foreign, owner):
dict -- A dictionary of data which will be hydrated.
"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'apply_query' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'apply_query' method")
def query_where_exists(self, builder, callback, method="where_exists"):
"""Adds a criteria clause to the query filter for existing related records"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'query_where_exists' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'query_where_exists' method")
def joins(self, builder, clause=None):
"""Helper method for adding join clauses to a relationship"""
@@ -87,59 +81,41 @@ def joins(self, builder, clause=None):
def get_with_count_query(self, builder, callback):
"""Adds a clause to the query to get the record count of the relationship"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'get_with_count_query' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'get_with_count_query' method")
def attach(self, current_model, related_record):
"""Link a related model to the current model"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'attach' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'attach' method")
def get_related(self, query, relation, eagers=None, callback=None):
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'get_related' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'get_related' method")
def relate(self, related_record):
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'relate' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'relate' method")
def detach(self, current_model, related_record):
"""Unlink a related model from the current model"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'detach' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'detach' method")
def attach_related(self, current_model, related_record):
"""Unlink a related model from the current model"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'attach_related' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'attach_related' method")
def detach_related(self, current_model, related_record):
"""Unlink a related model from the current model"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'detach_related' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'detach_related' method")
def query_has(self, current_query_builder, method="where_exists"):
"""Adds a clause to the query to check if a relation exists"""
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'query_has' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'query_has' method")
def map_related(self, related_result):
klass = self.__class__.__name__
- raise NotImplementedError(
- f"{klass} relationship does not implement the 'map_related' method"
- )
+ raise NotImplementedError(f"{klass} relationship does not implement the 'map_related' method")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py
index b2dfe25a..c25d9577 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py
@@ -1,4 +1,3 @@
-
from ..collection import Collection
from . import BaseRelationship
from fastapi_startkit.masoniteorm.models import registry
@@ -29,9 +28,7 @@ def apply_query(self, foreign, owner):
Returns:
dict -- A dictionary of data which will be hydrated.
"""
- return foreign.where(
- self.foreign_key, owner.__attributes__[self.local_key]
- ).first()
+ return foreign.where(self.foreign_key, owner.__attributes__[self.local_key]).first()
def query_has(self, current_query_builder, method="where_exists"):
related_builder = self.get_builder()
@@ -108,7 +105,5 @@ def relate(self, related_record):
return (
self.get_builder()
.where(self.foreign_key, related_record.__attributes__[self.local_key])
- ._set_creates_related(
- {self.foreign_key: related_record.__attributes__[self.local_key]}
- )
+ ._set_creates_related({self.foreign_key: related_record.__attributes__[self.local_key]})
)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py
index eb4dcc59..61c6a3c9 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py
@@ -100,9 +100,7 @@ async def apply_query(self, query, owner):
)
if hasattr(owner, self.local_owner_key):
- result.where(
- f"{table1}.{self.local_owner_key}", getattr(owner, self.local_owner_key)
- )
+ result.where(f"{table1}.{self.local_owner_key}", getattr(owner, self.local_owner_key))
if self.with_fields:
for field in self.with_fields:
@@ -237,14 +235,10 @@ async def make_query(self, query, relation, eagers=None, callback=None):
Collection(relation._get_value(self.local_owner_key)).unique(),
).get()
else:
- return await result.where(
- self.local_owner_key, getattr(relation, self.local_owner_key)
- ).get()
+ return await result.where(self.local_owner_key, getattr(relation, self.local_owner_key)).get()
async def get_related(self, query, relation, eagers=None, callback=None):
- final_result = await self.make_query(
- query, relation, eagers=eagers, callback=callback
- )
+ final_result = await self.make_query(query, relation, eagers=eagers, callback=callback)
builder = self.make_builder(eagers)
for model in final_result:
@@ -335,9 +329,7 @@ def relate(self, related_record):
)
if hasattr(owner, self.local_owner_key):
- result.where(
- f"{table1}.{self.local_owner_key}", getattr(owner, self.local_owner_key)
- )
+ result.where(f"{table1}.{self.local_owner_key}", getattr(owner, self.local_owner_key))
if self.with_fields:
for field in self.with_fields:
@@ -349,13 +341,7 @@ def map_related(self, related_result):
return related_result
def register_related(self, key, model, collection):
- model.add_relation(
- {
- key: collection.where(
- f"{self._table}_id", getattr(model, self.local_owner_key)
- )
- }
- )
+ model.add_relation({key: collection.where(f"{self._table}_id", getattr(model, self.local_owner_key))})
def joins(self, builder, clause=None):
if not self._table:
@@ -437,9 +423,7 @@ def query_where_exists(self, builder, callback, method="where_exists"):
f"{pivot_table}.{self.local_key}",
f"{builder.get_table_name()}.{self.local_owner_key}",
)
- .where_in(
- self.other_owner_key, callback(query.select(self.other_owner_key))
- )
+ .where_in(self.other_owner_key, callback(query.select(self.other_owner_key)))
)
def query_has(self, builder, method="where_exists"):
@@ -503,9 +487,7 @@ def attach(self, current_model, related_record):
self.foreign_key: getattr(related_record, self.other_owner_key),
}
- self._table = self._table or self.get_pivot_table_name(
- current_model, related_record
- )
+ self._table = self._table or self.get_pivot_table_name(current_model, related_record)
if self.with_timestamps:
data.update(
@@ -515,12 +497,7 @@ def attach(self, current_model, related_record):
}
)
- return (
- Pivot.on(current_model.get_builder().connection)
- .table(self._table)
- .without_global_scopes()
- .create(data)
- )
+ return Pivot.on(current_model.get_builder().connection).table(self._table).without_global_scopes().create(data)
def detach(self, current_model, related_record):
data = {
@@ -528,9 +505,7 @@ def detach(self, current_model, related_record):
self.foreign_key: getattr(related_record, self.other_owner_key),
}
- self._table = self._table or self.get_pivot_table_name(
- current_model, related_record
- )
+ self._table = self._table or self.get_pivot_table_name(current_model, related_record)
return (
Pivot.on(current_model.get_builder().connection)
@@ -546,9 +521,7 @@ def attach_related(self, current_model, related_record):
self.foreign_key: getattr(related_record, self.other_owner_key),
}
- self._table = self._table or self.get_pivot_table_name(
- current_model, related_record
- )
+ self._table = self._table or self.get_pivot_table_name(current_model, related_record)
if self.with_timestamps:
data.update(
@@ -571,9 +544,7 @@ def detach_related(self, current_model, related_record):
self.foreign_key: getattr(related_record, self.other_owner_key),
}
- self._table = self._table or self.get_pivot_table_name(
- current_model, related_record
- )
+ self._table = self._table or self.get_pivot_table_name(current_model, related_record)
if self.with_timestamps:
data.update(
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasMany.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasMany.py
index b35e2501..5e4d200d 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasMany.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasMany.py
@@ -15,9 +15,7 @@ def apply_query(self, foreign, owner):
Returns:
dict -- A dictionary of data which will be hydrated.
"""
- result = foreign.where(
- self.foreign_key, owner.__attributes__[self.local_key]
- ).get()
+ result = foreign.where(self.foreign_key, owner.__attributes__[self.local_key]).get()
return result
@@ -28,9 +26,7 @@ def set_keys(self, owner, attribute):
return self
def register_related(self, key, model, collection):
- model.add_relation(
- {key: collection.get(getattr(model, self.local_key)) or Collection()}
- )
+ model.add_relation({key: collection.get(getattr(model, self.local_key)) or Collection()})
def map_related(self, related_result):
return related_result.group_by(self.foreign_key)
@@ -39,9 +35,7 @@ async def attach(self, current_model, related_record):
local_key_value = getattr(current_model, self.local_key)
if not related_record.is_created():
related_record.fill({self.foreign_key: local_key_value})
- return await related_record.create(
- related_record.all_attributes(), cast=True
- )
+ return await related_record.create(related_record.all_attributes(), cast=True)
return await related_record.update({self.foreign_key: local_key_value})
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py
index 4c664e93..ed9ace29 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py
@@ -7,12 +7,12 @@ class HasManyThrough(BaseRelationship):
"""HasManyThrough Relationship Class."""
def __init__(
- self,
- fn=list[str],
- local_foreign_key=None,
- other_foreign_key=None,
- local_owner_key=None,
- other_owner_key=None,
+ self,
+ fn=list[str],
+ local_foreign_key=None,
+ other_foreign_key=None,
+ local_owner_key=None,
+ other_owner_key=None,
):
self.fn = fn
@@ -61,9 +61,7 @@ def apply_related_query(self, distant_builder, intermediary_builder, owner):
intermediate_table = intermediary_builder.get_table_name()
return (
- distant_builder.select(
- f"{distant_table}.*, {intermediate_table}.{self.local_key}"
- )
+ distant_builder.select(f"{distant_table}.*, {intermediate_table}.{self.local_key}")
.join(
f"{intermediate_table}",
f"{intermediate_table}.{self.foreign_key}",
@@ -113,9 +111,7 @@ async def get_related(self, current_builder, relation, eagers=None, callback=Non
if callback:
callback(current_builder)
- distant_builder.select(
- f"{distant_table}.*, {intermediate_table}.{self.local_key}"
- ).join(
+ distant_builder.select(f"{distant_table}.*, {intermediate_table}.{self.local_key}").join(
f"{intermediate_table}",
f"{intermediate_table}.{self.foreign_key}",
"=",
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOne.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOne.py
index cfb966bd..0422cc57 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOne.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOne.py
@@ -1,4 +1,3 @@
-
from ..collection import Collection
from .BaseRelationship import BaseRelationship
from fastapi_startkit.masoniteorm.models import registry
@@ -20,9 +19,7 @@ def set_keys(self, owner, attribute):
return self
def apply_query(self, foreign, owner):
- return foreign.where(
- self.foreign_key, owner.__attributes__[self.local_key]
- ).first()
+ return foreign.where(self.foreign_key, owner.__attributes__[self.local_key]).first()
async def get_related(self, query, relation, eagers=(), callback=None):
builder = self.get_builder().with_(eagers)
@@ -57,9 +54,7 @@ def query_has(self, current_query_builder, method="where_exists"):
return related_builder
def register_related(self, key, model, collection):
- related = collection.where(
- self.foreign_key, getattr(model, self.local_key)
- ).first()
+ related = collection.where(self.foreign_key, getattr(model, self.local_key)).first()
model.add_relation({key: related or None})
@@ -79,9 +74,7 @@ async def attach(self, current_model, related_record):
local_key_value = getattr(current_model, self.local_key)
if not related_record.is_created():
related_record.fill({self.foreign_key: local_key_value})
- return await related_record.create(
- related_record.all_attributes(), cast=True
- )
+ return await related_record.create(related_record.all_attributes(), cast=True)
return await related_record.update({self.foreign_key: local_key_value})
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py
index c18f8373..2cb07761 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py
@@ -63,9 +63,7 @@ def apply_relation_query(self, distant_builder, intermediary_builder, owner):
int_table = intermediary_builder.get_table_name()
return (
- distant_builder.select(
- f"{dist_table}.*, {int_table}.{self.local_owner_key} as {self.local_key}"
- )
+ distant_builder.select(f"{dist_table}.*, {int_table}.{self.local_owner_key} as {self.local_key}")
.join(
f"{int_table}",
f"{int_table}.{self.foreign_key}",
@@ -139,9 +137,7 @@ async def get_related(self, current_builder, relation, eagers=None, callback=Non
if callback:
callback(current_builder)
- distant_builder.select(
- f"{dist_table}.*, {int_table}.{self.local_owner_key} as {self.local_key}"
- ).join(
+ distant_builder.select(f"{dist_table}.*, {int_table}.{self.local_owner_key} as {self.local_key}").join(
f"{int_table}",
f"{int_table}.{self.foreign_key}",
"=",
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py
index ca0e60c5..af655ed5 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py
@@ -75,9 +75,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
record_type,
).where_in(
self.morph_id,
- relation.pluck(
- relation.first().get_primary_key(), keep_nulls=False
- ).unique(),
+ relation.pluck(relation.first().get_primary_key(), keep_nulls=False).unique(),
)
).get()
return (
@@ -87,9 +85,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
)
.where_in(
self.morph_id,
- relation.pluck(
- relation.first().get_primary_key(), keep_nulls=False
- ).unique(),
+ relation.pluck(relation.first().get_primary_key(), keep_nulls=False).unique(),
)
.get()
)
@@ -111,9 +107,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
def register_related(self, key, model, collection):
record_type = self.get_record_key_lookup(model)
- related = collection.where(self.morph_key, record_type).where(
- self.morph_id, model.get_primary_key_value()
- )
+ related = collection.where(self.morph_key, record_type).where(self.morph_id, model.get_primary_key_value())
model.add_relation({key: related})
@@ -128,8 +122,6 @@ def get_record_key_lookup(self, relation):
break
if not record_type:
- raise ValueError(
- f"Could not find the record type key for the {relation} class"
- )
+ raise ValueError(f"Could not find the record type key for the {relation} class")
return record_type
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py
index 219a27fb..72ce6b48 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py
@@ -91,9 +91,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
record_type,
).where_in(
self.morph_id,
- relation.pluck(
- relation.first().get_primary_key(), keep_nulls=False
- ).unique(),
+ relation.pluck(relation.first().get_primary_key(), keep_nulls=False).unique(),
)
).get()
@@ -104,9 +102,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
)
.where_in(
self.morph_id,
- relation.pluck(
- relation.first().get_primary_key(), keep_nulls=False
- ).unique(),
+ relation.pluck(relation.first().get_primary_key(), keep_nulls=False).unique(),
)
.get()
)
@@ -129,9 +125,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
def register_related(self, key, model, collection):
record_type = self.get_record_key_lookup(model)
related = (
- collection.where(self.morph_key, record_type)
- .where(self.morph_id, model.get_primary_key_value())
- .first()
+ collection.where(self.morph_key, record_type).where(self.morph_id, model.get_primary_key_value()).first()
)
model.add_relation({key: related})
@@ -147,8 +141,6 @@ def get_record_key_lookup(self, relation):
break
if not record_type:
- raise ValueError(
- f"Could not find the record type key for the {relation} class"
- )
+ raise ValueError(f"Could not find the record type key for the {relation} class")
return record_type
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py
index bdc7270a..45f27d1e 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py
@@ -32,10 +32,7 @@ def __get__(self, instance, owner):
if instance.relationship_loaded(self.attribute):
return instance.get_relationship(self.attribute)
- return self.apply_query(
- self._related_builder,
- instance
- )
+ return self.apply_query(self._related_builder, instance)
def __getattr__(self, attribute):
relationship = registry.Registry.resolve(self.fn)()
@@ -55,9 +52,7 @@ async def get_related(self, query, relation, eagers=None, callback=None):
relations.merge(
await morphed_model.where_in(
f"{morphed_model.__table__}.{morphed_model.__primary_key__}",
- Collection(items)
- .pluck(self.morph_id, keep_nulls=False)
- .unique(),
+ Collection(items).pluck(self.morph_id, keep_nulls=False).unique(),
).get()
)
return relations
@@ -69,9 +64,7 @@ async def get_related(self, query, relation, eagers=None, callback=None):
def register_related(self, key, model, collection):
morphed_model = self.morph_map().get(getattr(model, self.morph_key))
- related = collection.where(
- morphed_model.__primary_key__, getattr(model, self.morph_id)
- ).first()
+ related = collection.where(morphed_model.__primary_key__, getattr(model, self.morph_id)).first()
model.add_relation({key: related})
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py
index afda028b..f647f250 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py
@@ -83,9 +83,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
relations.merge(
morphed_model.where_in(
f"{morphed_model.get_table_name()}.{morphed_model.get_primary_key()}",
- Collection(items)
- .pluck(self.morph_id, keep_nulls=False)
- .unique(),
+ Collection(items).pluck(self.morph_id, keep_nulls=False).unique(),
).get()
)
return relations
@@ -97,9 +95,7 @@ def get_related(self, query, relation, eagers=None, callback=None):
def register_related(self, key, model, collection):
morphed_model = self.morph_map().get(getattr(model, self.morph_key))
- related = collection.where(
- morphed_model.get_primary_key(), getattr(model, self.morph_id)
- )
+ related = collection.where(morphed_model.get_primary_key(), getattr(model, self.morph_id))
model.add_relation({key: related})
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Blueprint.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Blueprint.py
index 0acccff1..6301abfa 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Blueprint.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Blueprint.py
@@ -37,9 +37,7 @@ def string(self, column, length=255, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "string", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "string", length=length, nullable=nullable)
return self
@@ -56,9 +54,7 @@ def tiny_integer(self, column, length=1, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "tiny_integer", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "tiny_integer", length=length, nullable=nullable)
return self
def small_integer(self, column, length=5, nullable=False):
@@ -74,9 +70,7 @@ def small_integer(self, column, length=5, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "small_integer", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "small_integer", length=length, nullable=nullable)
return self
def medium_integer(self, column, length=7, nullable=False):
@@ -92,9 +86,7 @@ def medium_integer(self, column, length=7, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "medium_integer", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "medium_integer", length=length, nullable=nullable)
return self
def integer(self, column, length=11, nullable=False):
@@ -110,9 +102,7 @@ def integer(self, column, length=11, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "integer", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "integer", length=length, nullable=nullable)
return self
def big_integer(self, column, length=32, nullable=False):
@@ -128,9 +118,7 @@ def big_integer(self, column, length=32, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "big_integer", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "big_integer", length=length, nullable=nullable)
return self
def unsigned_big_integer(self, column, length=32, nullable=False):
@@ -166,9 +154,7 @@ def increments(self, column, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "increments", nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "increments", nullable=nullable)
self.primary(column)
return self
@@ -185,9 +171,7 @@ def tiny_increments(self, column, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "tiny_increments", nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "tiny_increments", nullable=nullable)
self.primary(column)
return self
@@ -215,9 +199,7 @@ def uuid(self, column, nullable=False, length=36):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "uuid", nullable=nullable, length=length
- )
+ self._last_column = self.table.add_column(column, "uuid", nullable=nullable, length=length)
return self
def big_increments(self, column, nullable=False):
@@ -232,9 +214,7 @@ def big_increments(self, column, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "big_increments", nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "big_increments", nullable=nullable)
self.primary(column)
return self
@@ -291,9 +271,7 @@ def char(self, column, length=1, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "char", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "char", length=length, nullable=nullable)
return self
def date(self, column, nullable=False):
@@ -361,9 +339,7 @@ def timestamp(self, column, nullable=False, now=False):
self
"""
- self._last_column = self.table.add_column(
- column, "timestamp", nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "timestamp", nullable=nullable)
if now:
self._last_column.use_current()
@@ -461,9 +437,7 @@ def enum(self, column, options=None, nullable=False):
for option in options:
new_options += "'{}',".format(option)
new_options = new_options.rstrip(",")
- self._last_column = self.table.add_column(
- column, "enum", length="255", values=options, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "enum", length="255", values=options, nullable=nullable)
return self
def text(self, column, length=None, nullable=False):
@@ -479,9 +453,7 @@ def text(self, column, length=None, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "text", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "text", length=length, nullable=nullable)
return self
def tiny_text(self, column, length=None, nullable=False):
@@ -497,9 +469,7 @@ def tiny_text(self, column, length=None, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "tiny_text", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "tiny_text", length=length, nullable=nullable)
return self
def unsigned_decimal(self, column, length=17, precision=6, nullable=False):
@@ -537,9 +507,7 @@ def long_text(self, column, length=None, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "long_text", length=length, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "long_text", length=length, nullable=nullable)
return self
def json(self, column, nullable=False):
@@ -584,9 +552,7 @@ def inet(self, column, length=255, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "inet", length=255, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "inet", length=255, nullable=nullable)
return self
def cidr(self, column, length=255, nullable=False):
@@ -601,9 +567,7 @@ def cidr(self, column, length=255, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "cidr", length=255, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "cidr", length=255, nullable=nullable)
return self
def macaddr(self, column, length=255, nullable=False):
@@ -618,9 +582,7 @@ def macaddr(self, column, length=255, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "macaddr", length=255, nullable=nullable
- )
+ self._last_column = self.table.add_column(column, "macaddr", length=255, nullable=nullable)
return self
def point(self, column, nullable=False):
@@ -665,9 +627,7 @@ def year(self, column, length=4, default=None, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "year", length=length, nullable=nullable, default=default
- )
+ self._last_column = self.table.add_column(column, "year", length=length, nullable=nullable, default=default)
return self
def unsigned(self, column=None, length=None, nullable=False):
@@ -687,9 +647,7 @@ def unsigned(self, column=None, length=None, nullable=False):
self._last_column.unsigned()
return self
- self._last_column = self.table.add_column(
- column, "unsigned", length=length, nullable=nullable
- ).unsigned()
+ self._last_column = self.table.add_column(column, "unsigned", length=length, nullable=nullable).unsigned()
return self
def unsigned_integer(self, column, nullable=False):
@@ -704,9 +662,7 @@ def unsigned_integer(self, column, nullable=False):
Returns:
self
"""
- self._last_column = self.table.add_column(
- column, "integer", nullable=nullable
- ).unsigned()
+ self._last_column = self.table.add_column(column, "integer", nullable=nullable).unsigned()
return self
def morphs(self, column, nullable=False, indexes=True):
@@ -722,11 +678,7 @@ def morphs(self, column, nullable=False, indexes=True):
self
"""
_columns = []
- _columns.append(
- self.table.add_column(
- "{}_id".format(column), "integer", nullable=nullable
- ).unsigned()
- )
+ _columns.append(self.table.add_column("{}_id".format(column), "integer", nullable=nullable).unsigned())
_columns.append(
self.table.add_column(
"{}_type".format(column),
@@ -869,9 +821,7 @@ def fulltext(self, column=None, name=None):
if not isinstance(column, list):
column = [column]
- self.table.add_constraint(
- name or f"{'_'.join(column)}_fulltext", "fulltext", column
- )
+ self.table.add_constraint(name or f"{'_'.join(column)}_fulltext", "fulltext", column)
return self
@@ -907,9 +857,7 @@ def add_foreign(self, columns, name=None):
columns {string} -- The name of the from_column . to_column . table
"""
if len(columns.split(".")) != 3:
- raise Exception(
- "Wrong add_foreign argument, the struncture is from_column.to_column.table"
- )
+ raise Exception("Wrong add_foreign argument, the struncture is from_column.to_column.table")
from_column, to_column, table = columns.split(".")
return self.foreign(from_column, name=name).references(to_column).on(table)
@@ -922,9 +870,7 @@ def foreign(self, column, name=None):
Returns:
self
"""
- self._last_foreign = self.table.add_foreign_key(
- column, name=name or f"{self.table.name}_{column}_foreign"
- )
+ self._last_foreign = self.table.add_foreign_key(column, name=name or f"{self.table.name}_{column}_foreign")
return self
def foreign_id(self, column):
@@ -960,11 +906,7 @@ def foreign_id_for(self, model, column=None):
"""
clm = column if column else model.get_foreign_key()
- return (
- self.foreign_id(clm)
- if model.get_primary_key_type() == "int"
- else self.foreign_uuid(column)
- )
+ return self.foreign_id(clm) if model.get_primary_key_type() == "int" else self.foreign_uuid(column)
def references(self, column):
"""Sets the other column on the foreign table that the local column will use to reference.
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Table.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Table.py
index d010c92a..419eeb62 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Table.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/Table.py
@@ -47,9 +47,7 @@ def add_column(
return column
def add_constraint(self, name, constraint_type, columns=None):
- self.added_constraints.update(
- {name: Constraint(name, constraint_type, columns=columns or [])}
- )
+ self.added_constraints.update({name: Constraint(name, constraint_type, columns=columns or [])})
def add_foreign_key(self, column, table=None, foreign_column=None, name=None):
foreign_key = ForeignKeyConstraint(
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py
index a33eaebc..87d822d2 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py
@@ -63,30 +63,18 @@ class MSSQLPlatform(Platform):
def compile_create_sql(self, table, if_not_exists=False):
sql = []
- table_create_format = (
- self.create_if_not_exists_format()
- if if_not_exists
- else self.create_format()
- )
+ table_create_format = self.create_if_not_exists_format() if if_not_exists else self.create_format()
sql.append(
table_create_format.format(
table=self.wrap_table(table.name),
columns=", ".join(self.columnize(table.get_added_columns())).strip(),
constraints=(
- ", "
- + ", ".join(
- self.constraintize(table.get_added_constraints(), table)
- )
+ ", " + ", ".join(self.constraintize(table.get_added_constraints(), table))
if table.get_added_constraints()
else ""
),
foreign_keys=(
- ", "
- + ", ".join(
- self.foreign_key_constraintize(
- table.name, table.added_foreign_keys
- )
- )
+ ", " + ", ".join(self.foreign_key_constraintize(table.name, table.added_foreign_keys))
if table.added_foreign_keys
else ""
),
@@ -112,8 +100,7 @@ def compile_alter_sql(self, table):
sql.append(
self.alter_format().format(
table=self.wrap_table(table.name),
- columns="ADD "
- + ", ".join(self.columnize(table.added_columns)).strip(),
+ columns="ADD " + ", ".join(self.columnize(table.added_columns)).strip(),
)
)
@@ -121,16 +108,13 @@ def compile_alter_sql(self, table):
sql.append(
self.alter_format().format(
table=self.wrap_table(table.name),
- columns="ALTER COLUMN "
- + ", ".join(self.columnize(table.changed_columns)).strip(),
+ columns="ALTER COLUMN " + ", ".join(self.columnize(table.changed_columns)).strip(),
)
)
if table.renamed_columns:
for name, column in table.get_renamed_columns().items():
- sql.append(
- self.rename_column_string(table.name, name, column.name).strip()
- )
+ sql.append(self.rename_column_string(table.name, name, column.name).strip())
if table.dropped_columns:
dropped_sql = []
@@ -152,21 +136,21 @@ def compile_alter_sql(self, table):
) in table.get_added_foreign_keys().items():
cascade = ""
if foreign_key_constraint.delete_action:
- cascade += f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ cascade += (
+ f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ )
if foreign_key_constraint.update_action:
- cascade += f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ cascade += (
+ f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ )
sql.append(
f"ALTER TABLE {self.wrap_table(table.name)} ADD "
+ self.get_foreign_key_constraint_string().format(
constraint_name=foreign_key_constraint.constraint_name,
column=self.wrap_column(column),
table=self.wrap_table(table.name),
- foreign_table=self.wrap_table(
- foreign_key_constraint.foreign_table
- ),
- foreign_column=self.wrap_column(
- foreign_key_constraint.foreign_column
- ),
+ foreign_table=self.wrap_table(foreign_key_constraint.foreign_table),
+ foreign_column=self.wrap_column(foreign_key_constraint.foreign_column),
cascade=cascade,
)
)
@@ -174,9 +158,7 @@ def compile_alter_sql(self, table):
if table.dropped_foreign_keys:
constraints = table.dropped_foreign_keys
for constraint in constraints:
- sql.append(
- f"ALTER TABLE {self.wrap_table(table.name)} DROP CONSTRAINT {constraint}"
- )
+ sql.append(f"ALTER TABLE {self.wrap_table(table.name)} DROP CONSTRAINT {constraint}")
if table.added_indexes:
for name, index in table.added_indexes.items():
@@ -188,18 +170,12 @@ def compile_alter_sql(self, table):
)
)
- if (
- table.removed_indexes
- or table.removed_unique_indexes
- or table.dropped_primary_keys
- ):
+ if table.removed_indexes or table.removed_unique_indexes or table.dropped_primary_keys:
constraints = table.removed_indexes
constraints += table.removed_unique_indexes
constraints += table.dropped_primary_keys
for constraint in constraints:
- sql.append(
- f"DROP INDEX {self.wrap_table(table.name)}.{self.wrap_table(constraint)}"
- )
+ sql.append(f"DROP INDEX {self.wrap_table(table.name)}.{self.wrap_table(constraint)}")
if table.added_constraints:
for name, constraint in table.added_constraints.items():
@@ -228,9 +204,7 @@ def columnize(self, columns):
sql = []
for name, column in columns.items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -280,9 +254,7 @@ def constraintize(self, constraints, table):
sql = []
for name, constraint in constraints.items():
sql.append(
- getattr(
- self, f"get_{constraint.constraint_type}_constraint_string"
- )().format(
+ getattr(self, f"get_{constraint.constraint_type}_constraint_string")().format(
columns=", ".join(constraint._columns),
name_columns="_".join(constraint._columns),
constraint_name=constraint.name,
@@ -302,15 +274,15 @@ def create_format(self):
return "CREATE TABLE {table} ({columns}{constraints}{foreign_keys})"
def create_if_not_exists_format(self):
- return (
- "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
- )
+ return "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
def alter_format(self):
return "ALTER TABLE {table} {columns}"
def get_foreign_key_constraint_string(self):
- return "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ return (
+ "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ )
def get_primary_key_constraint_string(self):
return "CONSTRAINT {constraint_name} PRIMARY KEY ({columns})"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py
index e21764ef..d204b961 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py
@@ -63,9 +63,7 @@ def columnize(self, columns):
sql = []
for name, column in columns.items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -101,12 +99,8 @@ def columnize(self, columns):
constraint=constraint,
nullable=self.premapped_nulls.get(column.is_null) or "",
default=default,
- signed=(
- " " + self.signed.get(column._signed) if column._signed else ""
- ),
- comment=(
- "COMMENT '" + column.comment + "'" if column.comment else ""
- ),
+ signed=(" " + self.signed.get(column._signed) if column._signed else ""),
+ comment=("COMMENT '" + column.comment + "'" if column.comment else ""),
)
.strip()
)
@@ -115,30 +109,18 @@ def columnize(self, columns):
def compile_create_sql(self, table, if_not_exists=False):
sql = []
- table_create_format = (
- self.create_if_not_exists_format()
- if if_not_exists
- else self.create_format()
- )
+ table_create_format = self.create_if_not_exists_format() if if_not_exists else self.create_format()
sql.append(
table_create_format.format(
table=self.get_table_string().format(table=table.name),
columns=", ".join(self.columnize(table.get_added_columns())).strip(),
constraints=(
- ", "
- + ", ".join(
- self.constraintize(table.get_added_constraints(), table)
- )
+ ", " + ", ".join(self.constraintize(table.get_added_constraints(), table))
if table.get_added_constraints()
else ""
),
foreign_keys=(
- ", "
- + ", ".join(
- self.foreign_key_constraintize(
- table.name, table.added_foreign_keys
- )
- )
+ ", " + ", ".join(self.foreign_key_constraintize(table.name, table.added_foreign_keys))
if table.added_foreign_keys
else ""
),
@@ -166,9 +148,7 @@ def compile_alter_sql(self, table):
for name, column in table.get_added_columns().items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -199,21 +179,9 @@ def compile_alter_sql(self, table):
constraint="PRIMARY KEY" if column.primary else "",
nullable="NULL" if column.is_null else "NOT NULL",
default=default,
- signed=(
- " " + self.signed.get(column._signed)
- if column._signed
- else ""
- ),
- after=(
- (" AFTER " + self.wrap_column(column._after))
- if column._after
- else ""
- ),
- comment=(
- " COMMENT '" + column.comment + "'"
- if column.comment
- else ""
- ),
+ signed=(" " + self.signed.get(column._signed) if column._signed else ""),
+ after=((" AFTER " + self.wrap_column(column._after)) if column._after else ""),
+ comment=(" COMMENT '" + column.comment + "'" if column.comment else ""),
)
.strip()
)
@@ -231,9 +199,7 @@ def compile_alter_sql(self, table):
for name, column in table.get_renamed_columns().items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -257,9 +223,7 @@ def compile_alter_sql(self, table):
sql.append(
self.alter_format().format(
table=self.wrap_table(table.name),
- columns=", ".join(
- f"MODIFY {x}" for x in self.columnize(table.changed_columns)
- ),
+ columns=", ".join(f"MODIFY {x}" for x in self.columnize(table.changed_columns)),
)
)
@@ -268,9 +232,7 @@ def compile_alter_sql(self, table):
for name in table.get_dropped_columns():
dropped_sql.append(
- self.drop_column_string()
- .format(name=self.get_column_string().format(column=name))
- .strip()
+ self.drop_column_string().format(name=self.get_column_string().format(column=name)).strip()
)
sql.append(
@@ -287,9 +249,13 @@ def compile_alter_sql(self, table):
) in table.get_added_foreign_keys().items():
cascade = ""
if foreign_key_constraint.delete_action:
- cascade += f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ cascade += (
+ f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ )
if foreign_key_constraint.update_action:
- cascade += f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ cascade += (
+ f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ )
sql.append(
f"ALTER TABLE {self.wrap_table(table.name)} ADD "
+ self.get_foreign_key_constraint_string().format(
@@ -305,9 +271,7 @@ def compile_alter_sql(self, table):
if table.dropped_foreign_keys:
constraints = table.dropped_foreign_keys
for constraint in constraints:
- sql.append(
- f"ALTER TABLE {self.wrap_table(table.name)} DROP FOREIGN KEY {constraint}"
- )
+ sql.append(f"ALTER TABLE {self.wrap_table(table.name)} DROP FOREIGN KEY {constraint}")
if table.added_indexes:
for name, index in table.added_indexes.items():
@@ -334,22 +298,14 @@ def compile_alter_sql(self, table):
f"ALTER TABLE {self.wrap_table(table.name)} ADD CONSTRAINT {constraint.name} PRIMARY KEY ({','.join(constraint._columns)})"
)
- if (
- table.removed_indexes
- or table.removed_unique_indexes
- or table.dropped_primary_keys
- ):
+ if table.removed_indexes or table.removed_unique_indexes or table.dropped_primary_keys:
constraints = table.removed_indexes
constraints += table.removed_unique_indexes
constraints += table.dropped_primary_keys
for constraint in constraints:
- sql.append(
- f"ALTER TABLE {self.wrap_table(table.name)} DROP INDEX {constraint}"
- )
+ sql.append(f"ALTER TABLE {self.wrap_table(table.name)} DROP INDEX {constraint}")
if table.comment:
- sql.append(
- f"ALTER TABLE {self.wrap_table(table.name)} COMMENT '{table.comment}'"
- )
+ sql.append(f"ALTER TABLE {self.wrap_table(table.name)} COMMENT '{table.comment}'")
return sql
def add_column_string(self):
@@ -371,9 +327,7 @@ def constraintize(self, constraints, table):
sql = []
for name, constraint in constraints.items():
sql.append(
- getattr(
- self, f"get_{constraint.constraint_type}_constraint_string"
- )().format(
+ getattr(self, f"get_{constraint.constraint_type}_constraint_string")().format(
columns=", ".join(constraint._columns),
name_columns="_".join(constraint._columns),
table=table.name,
@@ -399,7 +353,9 @@ def alter_format(self):
return "ALTER TABLE {table} {columns}"
def get_foreign_key_constraint_string(self):
- return "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ return (
+ "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ )
def get_primary_key_constraint_string(self):
return "CONSTRAINT {constraint_name} PRIMARY KEY ({columns})"
@@ -430,7 +386,9 @@ def compile_drop_table(self, table):
return f"DROP TABLE {self.wrap_table(table)}"
def compile_column_exists(self, table, column):
- return f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ return (
+ f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ )
def compile_get_all_tables(self, database, schema=None):
return f"SELECT table_name FROM information_schema.tables WHERE table_schema = '{database}'"
@@ -442,9 +400,7 @@ async def get_current_schema(self, connection, table_name, schema=None):
reversed_type_map = {v: k for k, v in self.type_map.items()}
for column in result:
- column_type = self.get_column_type(
- reversed_type_map, column["Type"].upper()
- )
+ column_type = self.get_column_type(reversed_type_map, column["Type"].upper())
length = self.get_column_length(column["Type"])
default = column.get("Default")
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py
index 4b3ae2b7..2f311aa5 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py
@@ -14,9 +14,7 @@ def columnize(self, columns):
sql = []
for name, column in columns.items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -79,9 +77,9 @@ def constraintize(self, constraints):
sql = []
for name, constraint in constraints.items():
sql.append(
- getattr(
- self, f"get_{constraint.constraint_type}_constraint_string"
- )().format(columns=", ".join(constraint._columns))
+ getattr(self, f"get_{constraint.constraint_type}_constraint_string")().format(
+ columns=", ".join(constraint._columns)
+ )
)
return sql
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py
index 5f0a7716..36058664 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py
@@ -75,30 +75,18 @@ class PostgresPlatform(Platform):
def compile_create_sql(self, table, if_not_exists=False):
sql = []
- table_create_format = (
- self.create_if_not_exists_format()
- if if_not_exists
- else self.create_format()
- )
+ table_create_format = self.create_if_not_exists_format() if if_not_exists else self.create_format()
sql.append(
table_create_format.format(
table=self.wrap_table(table.name),
columns=", ".join(self.columnize(table.get_added_columns())).strip(),
constraints=(
- ", "
- + ", ".join(
- self.constraintize(table.get_added_constraints(), table)
- )
+ ", " + ", ".join(self.constraintize(table.get_added_constraints(), table))
if table.get_added_constraints()
else ""
),
foreign_keys=(
- ", "
- + ", ".join(
- self.foreign_key_constraintize(
- table.name, table.added_foreign_keys
- )
- )
+ ", " + ", ".join(self.foreign_key_constraintize(table.name, table.added_foreign_keys))
if table.added_foreign_keys
else ""
),
@@ -117,9 +105,7 @@ def compile_create_sql(self, table, if_not_exists=False):
for name, column in table.get_added_columns().items():
if column.comment:
- sql.append(
- f"""COMMENT ON COLUMN "{table.name}"."{name}" is '{column.comment}'"""
- )
+ sql.append(f"""COMMENT ON COLUMN "{table.name}"."{name}" is '{column.comment}'""")
if table.comment:
sql.append(f"""COMMENT ON TABLE "{table.name}" is '{table.comment}'""")
@@ -130,9 +116,7 @@ def columnize(self, columns):
sql = []
for name, column in columns.items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -183,9 +167,7 @@ def compile_alter_sql(self, table):
for name, column in table.get_added_columns().items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -240,9 +222,7 @@ def compile_alter_sql(self, table):
for name, column in table.get_renamed_columns().items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -266,11 +246,7 @@ def compile_alter_sql(self, table):
dropped_sql = []
for name in table.get_dropped_columns():
- dropped_sql.append(
- self.drop_column_string()
- .format(name=self.wrap_column(name))
- .strip()
- )
+ dropped_sql.append(self.drop_column_string().format(name=self.wrap_column(name)).strip())
sql.append(
self.alter_format().format(
@@ -305,18 +281,12 @@ def compile_alter_sql(self, table):
)
if column.is_null:
- changed_sql.append(
- f"ALTER COLUMN {self.wrap_column(name)} DROP NOT NULL"
- )
+ changed_sql.append(f"ALTER COLUMN {self.wrap_column(name)} DROP NOT NULL")
else:
- changed_sql.append(
- f"ALTER COLUMN {self.wrap_column(name)} SET NOT NULL"
- )
+ changed_sql.append(f"ALTER COLUMN {self.wrap_column(name)} SET NOT NULL")
if column.default is not None:
- changed_sql.append(
- f"ALTER COLUMN {self.wrap_column(name)} SET DEFAULT {column.default}"
- )
+ changed_sql.append(f"ALTER COLUMN {self.wrap_column(name)} SET DEFAULT {column.default}")
sql.append(
self.alter_format().format(
@@ -331,21 +301,21 @@ def compile_alter_sql(self, table):
) in table.get_added_foreign_keys().items():
cascade = ""
if foreign_key_constraint.delete_action:
- cascade += f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ cascade += (
+ f" ON DELETE {self.foreign_key_actions.get(foreign_key_constraint.delete_action.lower())}"
+ )
if foreign_key_constraint.update_action:
- cascade += f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ cascade += (
+ f" ON UPDATE {self.foreign_key_actions.get(foreign_key_constraint.update_action.lower())}"
+ )
sql.append(
f"ALTER TABLE {self.wrap_table(table.name)} ADD "
+ self.get_foreign_key_constraint_string().format(
column=self.wrap_column(column),
constraint_name=foreign_key_constraint.constraint_name,
table=self.wrap_table(table.name),
- foreign_table=self.wrap_table(
- foreign_key_constraint.foreign_table
- ),
- foreign_column=self.wrap_column(
- foreign_key_constraint.foreign_column
- ),
+ foreign_table=self.wrap_table(foreign_key_constraint.foreign_table),
+ foreign_column=self.wrap_column(foreign_key_constraint.foreign_column),
cascade=cascade,
)
)
@@ -355,18 +325,12 @@ def compile_alter_sql(self, table):
for constraint in constraints:
sql.append(f"DROP INDEX {constraint}")
- if (
- table.dropped_foreign_keys
- or table.removed_unique_indexes
- or table.dropped_primary_keys
- ):
+ if table.dropped_foreign_keys or table.removed_unique_indexes or table.dropped_primary_keys:
constraints = table.dropped_foreign_keys
constraints += table.removed_unique_indexes
constraints += table.dropped_primary_keys
for constraint in constraints:
- sql.append(
- f"ALTER TABLE {self.wrap_table(table.name)} DROP CONSTRAINT {constraint}"
- )
+ sql.append(f"ALTER TABLE {self.wrap_table(table.name)} DROP CONSTRAINT {constraint}")
if table.added_indexes:
for name, index in table.added_indexes.items():
@@ -396,9 +360,7 @@ def compile_alter_sql(self, table):
)
if table.comment:
- sql.append(
- f"""COMMENT ON TABLE {self.wrap_table(table.name)} is '{table.comment}'"""
- )
+ sql.append(f"""COMMENT ON TABLE {self.wrap_table(table.name)} is '{table.comment}'""")
return sql
@@ -427,9 +389,7 @@ def constraintize(self, constraints, table):
sql = []
for name, constraint in constraints.items():
sql.append(
- getattr(
- self, f"get_{constraint.constraint_type}_constraint_string"
- )().format(
+ getattr(self, f"get_{constraint.constraint_type}_constraint_string")().format(
columns=", ".join(constraint._columns),
name_columns="_".join(constraint._columns),
constraint_name=constraint.name,
@@ -442,12 +402,12 @@ def create_format(self):
return "CREATE TABLE {table} ({columns}{constraints}{foreign_keys})"
def create_if_not_exists_format(self):
- return (
- "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
- )
+ return "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
def get_foreign_key_constraint_string(self):
- return "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ return (
+ "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ )
def get_primary_key_constraint_string(self):
return "CONSTRAINT {constraint_name} PRIMARY KEY ({columns})"
@@ -487,15 +447,15 @@ def compile_drop_table(self, table):
return f"DROP TABLE {self.wrap_table(table)} CASCADE"
def compile_column_exists(self, table, column):
- return f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ return (
+ f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ )
def compile_get_all_tables(self, database=None, schema=None):
return f"SELECT table_name FROM information_schema.tables WHERE table_schema = '{schema or 'public'}' AND table_catalog = '{database}' AND table_type = 'BASE TABLE'"
async def get_current_schema(self, connection, table_name, schema=None):
- sql = self.table_information_string().format(
- table=table_name, schema=schema or "public"
- )
+ sql = self.table_information_string().format(table=table_name, schema=schema or "public")
reversed_type_map = {v: k for k, v in self.type_map.items()}
reversed_type_map.update(self.table_info_map)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py
index d58dde0f..d95e4186 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py
@@ -65,11 +65,7 @@ class SQLitePlatform(Platform):
def compile_create_sql(self, table, if_not_exists=False):
sql = []
- table_create_format = (
- self.create_if_not_exists_format()
- if if_not_exists
- else self.create_format()
- )
+ table_create_format = self.create_if_not_exists_format() if if_not_exists else self.create_format()
sql.append(
table_create_format.format(
table=self.get_table_string().format(table=table.name).strip(),
@@ -80,12 +76,7 @@ def compile_create_sql(self, table, if_not_exists=False):
else ""
),
foreign_keys=(
- ", "
- + ", ".join(
- self.foreign_key_constraintize(
- table.name, table.added_foreign_keys
- )
- )
+ ", " + ", ".join(self.foreign_key_constraintize(table.name, table.added_foreign_keys))
if table.added_foreign_keys
else ""
),
@@ -94,9 +85,7 @@ def compile_create_sql(self, table, if_not_exists=False):
if table.added_indexes:
for name, index in table.added_indexes.items():
- sql.append(
- f"CREATE INDEX {index.name} ON {self.wrap_table(table.name)}({','.join(index.column)})"
- )
+ sql.append(f"CREATE INDEX {index.name} ON {self.wrap_table(table.name)}({','.join(index.column)})")
return sql
@@ -104,9 +93,7 @@ def columnize(self, columns):
sql = []
for name, column in columns.items():
if column.length:
- length = self.create_column_length(column.column_type).format(
- length=column.length
- )
+ length = self.create_column_length(column.column_type).format(length=column.length)
else:
length = ""
@@ -142,8 +129,7 @@ def columnize(self, columns):
length=length,
signed=(
" " + self.signed.get(column._signed)
- if column.column_type not in self.types_without_signs
- and column._signed
+ if column.column_type not in self.types_without_signs and column._signed
else ""
),
constraint=constraint,
@@ -197,20 +183,14 @@ def compile_alter_sql(self, diff):
default=default,
signed=(
" " + self.signed.get(column._signed)
- if column.column_type not in self.types_without_signs
- and column._signed
+ if column.column_type not in self.types_without_signs and column._signed
else ""
),
constraint=constraint,
)
.strip()
)
- if (
- diff.renamed_columns
- or diff.dropped_columns
- or diff.changed_columns
- or diff.added_foreign_keys
- ):
+ if diff.renamed_columns or diff.dropped_columns or diff.changed_columns or diff.added_foreign_keys:
original_columns = dict(diff.from_table.added_columns)
# pop off the dropped columns. No need for them here
for column in diff.dropped_columns:
@@ -236,18 +216,12 @@ def compile_alter_sql(self, diff):
table=self.get_table_string().format(table=diff.name).strip(),
columns=", ".join(self.columnize(columns)).strip(),
constraints=(
- ", "
- + ", ".join(self.constraintize(diff.get_added_constraints()))
+ ", " + ", ".join(self.constraintize(diff.get_added_constraints()))
if diff.get_added_constraints()
else ""
),
foreign_keys=(
- ", "
- + ", ".join(
- self.foreign_key_constraintize(
- diff.name, diff.added_foreign_keys
- )
- )
+ ", " + ", ".join(self.foreign_key_constraintize(diff.name, diff.added_foreign_keys))
if diff.added_foreign_keys
else ""
),
@@ -277,9 +251,7 @@ def compile_alter_sql(self, diff):
if diff.added_indexes:
for name, index in diff.added_indexes.items():
- sql.append(
- f"CREATE INDEX {index.name} ON {self.wrap_table(diff.name)}({','.join(index.column)})"
- )
+ sql.append(f"CREATE INDEX {index.name} ON {self.wrap_table(diff.name)}({','.join(index.column)})")
if diff.added_constraints:
for name, constraint in diff.added_constraints.items():
if constraint.constraint_type == "unique":
@@ -297,9 +269,7 @@ def create_format(self):
return "CREATE TABLE {table} ({columns}{constraints}{foreign_keys})"
def create_if_not_exists_format(self):
- return (
- "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
- )
+ return "CREATE TABLE IF NOT EXISTS {table} ({columns}{constraints}{foreign_keys})"
def get_table_string(self):
return '"{table}"'
@@ -322,7 +292,9 @@ def get_unique_constraint_string(self):
return "UNIQUE({columns})"
def get_foreign_key_constraint_string(self):
- return "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ return (
+ "CONSTRAINT {constraint_name} FOREIGN KEY ({column}) REFERENCES {foreign_table}({foreign_column}){cascade}"
+ )
def get_primary_key_constraint_string(self):
return "CONSTRAINT {constraint_name} PRIMARY KEY ({columns})"
@@ -331,9 +303,7 @@ def constraintize(self, constraints):
sql = []
for name, constraint in constraints.items():
sql.append(
- getattr(
- self, f"get_{constraint.constraint_type}_constraint_string"
- )().format(
+ getattr(self, f"get_{constraint.constraint_type}_constraint_string")().format(
columns=", ".join(constraint.columns),
constraint_name=constraint.name,
)
@@ -375,9 +345,7 @@ async def get_current_schema(self, connection, table_name, schema=None):
result = await connection.select(sql, ())
for column in result:
- column_type = self.get_column_type(
- reversed_type_map, column["type"].upper()
- )
+ column_type = self.get_column_type(reversed_type_map, column["type"].upper())
length = self.get_column_length(column["type"])
# find default
@@ -429,7 +397,9 @@ def compile_table_exists(self, table, database=None, schema=None):
return f"SELECT name FROM sqlite_master WHERE type='table' AND name='{table}'"
def compile_column_exists(self, table, column):
- return f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ return (
+ f"SELECT column_name FROM information_schema.columns WHERE table_name='{table}' and column_name='{column}'"
+ )
def compile_get_all_tables(self, database, schema=None):
return "SELECT name FROM sqlite_master WHERE type='table'"
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/schema.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/schema.py
index 4d84c4c0..53ae5a89 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/schema.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/schema/schema.py
@@ -112,9 +112,7 @@ async def drop_table_if_exists(self, table: str) -> None:
if self._connection is None:
self._connection = self._manager.connection(None)
- sql = self._connection.get_default_platform()().compile_drop_table_if_exists(
- table
- )
+ sql = self._connection.get_default_platform()().compile_drop_table_if_exists(table)
await self._connection.statement(sql, ())
async def has_table(self, table: str) -> bool:
@@ -129,9 +127,7 @@ async def rename(self, table: str, new_name: str) -> None:
if self._connection is None:
self._connection = self._manager.connection(None)
- sql = self._connection.get_default_platform()().compile_rename_table(
- table, new_name
- )
+ sql = self._connection.get_default_platform()().compile_rename_table(table, new_name)
await self._connection.run(sql, ())
async def truncate(self, table: str, foreign_keys: bool = False) -> None:
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/seeds/Seeder.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/seeds/Seeder.py
index 338544b6..a555850c 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/seeds/Seeder.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/seeds/Seeder.py
@@ -14,14 +14,10 @@ async def call(self, *seeder_classes):
await seeder_class(connection=self.connection).run()
async def run_database_seed(self):
- database_seeder = pydoc.locate(
- f"{self.seed_module}.database_seeder.DatabaseSeeder"
- )
+ database_seeder = pydoc.locate(f"{self.seed_module}.database_seeder.DatabaseSeeder")
if not database_seeder:
- raise ValueError(
- f"Could not find the DatabaseSeeder class in {self.seed_module}.database_seeder"
- )
+ raise ValueError(f"Could not find the DatabaseSeeder class in {self.seed_module}.database_seeder")
self.ran_seeds.append(database_seeder)
diff --git a/fastapi_startkit/src/fastapi_startkit/masoniteorm/testing/__init__.py b/fastapi_startkit/src/fastapi_startkit/masoniteorm/testing/__init__.py
index 819d4db8..4472cde0 100644
--- a/fastapi_startkit/src/fastapi_startkit/masoniteorm/testing/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/masoniteorm/testing/__init__.py
@@ -1,6 +1,6 @@
from fastapi_startkit.masoniteorm.testing.transaction import RefreshDatabase, DatabaseTransaction
__all__ = [
- 'RefreshDatabase',
- 'DatabaseTransaction',
+ "RefreshDatabase",
+ "DatabaseTransaction",
]
diff --git a/fastapi_startkit/src/fastapi_startkit/providers/Provider.py b/fastapi_startkit/src/fastapi_startkit/providers/Provider.py
index 7a49873f..04059023 100644
--- a/fastapi_startkit/src/fastapi_startkit/providers/Provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/providers/Provider.py
@@ -16,12 +16,7 @@ def __init__(self, application: "Application", config: dict = None):
self.config = config or {}
if self.provider_key is None:
- self.provider_key = str(
- Str.of(self.__class__.__name__)
- .trim("ServiceProvider")
- .trim("Provider")
- .slugify()
- )
+ self.provider_key = str(Str.of(self.__class__.__name__).trim("ServiceProvider").trim("Provider").slugify())
def register(self) -> None:
pass
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/config/__init__.py b/fastapi_startkit/src/fastapi_startkit/storage/config/__init__.py
index 703689df..881f6329 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/config/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/config/__init__.py
@@ -19,6 +19,7 @@ class PublicDiskConfig(LocalDiskConfig):
visibility: str = "public"
url: str = "/storage"
+
@dataclass
class S3Config:
driver: str = field(default="s3")
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/drivers/__init__.py b/fastapi_startkit/src/fastapi_startkit/storage/drivers/__init__.py
index 99d682f6..e7a09b79 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/drivers/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/drivers/__init__.py
@@ -1,3 +1,3 @@
from .local import LocalDriver
from .s3 import S3Driver
-from .fake import FakeDriver
\ No newline at end of file
+from .fake import FakeDriver
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/drivers/fake.py b/fastapi_startkit/src/fastapi_startkit/storage/drivers/fake.py
index cc2c2a0e..b8f48d28 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/drivers/fake.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/drivers/fake.py
@@ -29,10 +29,7 @@ def assert_exists(self, paths, content=None):
paths = [paths]
for path in paths:
- assert self.exists(path), (
- f"Storage::fake({self._disk_name!r}): "
- f"failed asserting that [{path!r}] exists."
- )
+ assert self.exists(path), f"Storage::fake({self._disk_name!r}): failed asserting that [{path!r}] exists."
if content is not None:
actual = self.get(path)
assert actual == content, (
@@ -50,8 +47,7 @@ def assert_missing(self, paths):
for path in paths:
assert self.missing(path), (
- f"Storage::fake({self._disk_name!r}): "
- f"failed asserting that [{path!r}] is missing."
+ f"Storage::fake({self._disk_name!r}): failed asserting that [{path!r}] is missing."
)
return self
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/drivers/local.py b/fastapi_startkit/src/fastapi_startkit/storage/drivers/local.py
index 29be5ff9..2d677495 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/drivers/local.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/drivers/local.py
@@ -127,7 +127,5 @@ def get_files(self, directory=""):
def download(self, file_path, name=None, force=False):
from fastapi.responses import FileResponse
- return FileResponse(
- self.get_path(file_path),
- filename=name or os.path.basename(file_path)
- )
+
+ return FileResponse(self.get_path(file_path), filename=name or os.path.basename(file_path))
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/drivers/s3.py b/fastapi_startkit/src/fastapi_startkit/storage/drivers/s3.py
index c52cdf34..3853ae99 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/drivers/s3.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/drivers/s3.py
@@ -19,9 +19,7 @@ def get_connection(self):
try:
import boto3
except ImportError:
- raise ModuleNotFoundError(
- "Could not find the 'boto3' library. Run 'pip install boto3' to fix this."
- )
+ raise ModuleNotFoundError("Could not find the 'boto3' library. Run 'pip install boto3' to fix this.")
if not self.connection:
self.connection = boto3.Session(
@@ -34,25 +32,19 @@ def get_connection(self):
def get_client(self):
import botocore.config
+
config = botocore.config.Config(
- s3={'addressing_style': 'path' if self.options.get("use_path_style_endpoint") else 'auto'}
- )
- return self.get_connection().client(
- "s3",
- endpoint_url=self.options.get("endpoint"),
- config=config
+ s3={"addressing_style": "path" if self.options.get("use_path_style_endpoint") else "auto"}
)
+ return self.get_connection().client("s3", endpoint_url=self.options.get("endpoint"), config=config)
def get_resource(self):
import botocore.config
+
config = botocore.config.Config(
- s3={'addressing_style': 'path' if self.options.get("use_path_style_endpoint") else 'auto'}
- )
- return self.get_connection().resource(
- "s3",
- endpoint_url=self.options.get("endpoint"),
- config=config
+ s3={"addressing_style": "path" if self.options.get("use_path_style_endpoint") else "auto"}
)
+ return self.get_connection().resource("s3", endpoint_url=self.options.get("endpoint"), config=config)
def get_bucket(self):
return self.options.get("bucket")
@@ -62,9 +54,7 @@ def get_name(self, path, alias):
return f"{alias}{extension}"
def put(self, file_path, content):
- self.get_resource().Bucket(self.get_bucket()).put_object(
- Key=file_path, Body=content
- )
+ self.get_resource().Bucket(self.get_bucket()).put_object(Key=file_path, Body=content)
return content
def put_file(self, file_path, content, name=None):
@@ -73,21 +63,13 @@ def put_file(self, file_path, content, name=None):
if hasattr(content, "get_content"):
content = content.get_content()
- self.get_resource().Bucket(self.get_bucket()).put_object(
- Key=os.path.join(file_path, file_name), Body=content
- )
+ self.get_resource().Bucket(self.get_bucket()).put_object(Key=os.path.join(file_path, file_name), Body=content)
return os.path.join(file_path, file_name)
def get(self, file_path):
try:
return (
- self.get_resource()
- .Bucket(self.get_bucket())
- .Object(file_path)
- .get()
- .get("Body")
- .read()
- .decode("utf-8")
+ self.get_resource().Bucket(self.get_bucket()).Object(file_path).get().get("Body").read().decode("utf-8")
)
except self.missing_file_exceptions():
pass
@@ -99,9 +81,7 @@ def missing_file_exceptions(self):
def exists(self, file_path):
try:
- self.get_resource().Bucket(self.get_bucket()).Object(
- file_path
- ).load()
+ self.get_resource().Bucket(self.get_bucket()).Object(file_path).load()
return True
except self.missing_file_exceptions():
return False
@@ -132,9 +112,7 @@ def stream(self, file_path):
def copy(self, from_file_path, to_file_path):
copy_source = {"Bucket": self.get_bucket(), "Key": from_file_path}
- self.get_resource().meta.client.copy(
- copy_source, self.get_bucket(), to_file_path
- )
+ self.get_resource().meta.client.copy(copy_source, self.get_bucket(), to_file_path)
def move(self, from_file_path, to_file_path):
self.copy(from_file_path, to_file_path)
@@ -152,17 +130,11 @@ def append(self, file_path, content):
self.put(file_path, content)
def delete(self, file_path):
- return (
- self.get_resource()
- .Object(self.get_bucket(), file_path)
- .delete()
- )
+ return self.get_resource().Object(self.get_bucket(), file_path).delete()
def store(self, file, name=None):
full_path = name or file.hash_path_name()
- self.get_resource().Bucket(self.get_bucket()).put_object(
- Key=full_path, Body=file.stream()
- )
+ self.get_resource().Bucket(self.get_bucket()).put_object(Key=full_path, Body=file.stream())
return full_path
def make_file_path_if_not_exists(self, file_path):
@@ -197,6 +169,7 @@ def download(self, file_path, name=None, force=False):
ExpiresIn=3600,
)
from fastapi.responses import RedirectResponse
+
return RedirectResponse(url)
def url(self, file_path):
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/providers/provider.py b/fastapi_startkit/src/fastapi_startkit/storage/providers/provider.py
index d34cebb8..694e620a 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/providers/provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/providers/provider.py
@@ -17,13 +17,7 @@ def register(self):
self.app.bind("storage", storage)
def boot(self):
- self.publishes(
- {
- Path(__file__)
- .resolve()
- .parent.parent.joinpath("config/storage.py"): "config/storage.py"
- }
- )
+ self.publishes({Path(__file__).resolve().parent.parent.joinpath("config/storage.py"): "config/storage.py"})
if not self.app.fastapi:
return
@@ -54,6 +48,4 @@ async def serve_storage_file(path: str):
media_type=media_type or "application/octet-stream",
)
- self.app.fastapi.get("/storage/{path:path}", include_in_schema=False)(
- serve_storage_file
- )
+ self.app.fastapi.get("/storage/{path:path}", include_in_schema=False)(serve_storage_file)
diff --git a/fastapi_startkit/src/fastapi_startkit/storage/storage.py b/fastapi_startkit/src/fastapi_startkit/storage/storage.py
index 07e9b0c8..cdd7fda2 100644
--- a/fastapi_startkit/src/fastapi_startkit/storage/storage.py
+++ b/fastapi_startkit/src/fastapi_startkit/storage/storage.py
@@ -114,6 +114,7 @@ class Storage:
def __init__(self):
from fastapi_startkit.application import app
+
self.app = app()
self.storage: StorageManager = self.app.make("storage")
diff --git a/fastapi_startkit/src/fastapi_startkit/testing/__init__.py b/fastapi_startkit/src/fastapi_startkit/testing/__init__.py
index 0336c70c..81fdc092 100644
--- a/fastapi_startkit/src/fastapi_startkit/testing/__init__.py
+++ b/fastapi_startkit/src/fastapi_startkit/testing/__init__.py
@@ -1,5 +1,3 @@
from .test_case import TestCase
-__all__ = [
- 'TestCase'
-]
+__all__ = ["TestCase"]
diff --git a/fastapi_startkit/src/fastapi_startkit/testing/test_case.py b/fastapi_startkit/src/fastapi_startkit/testing/test_case.py
index 53d868b4..548842f1 100644
--- a/fastapi_startkit/src/fastapi_startkit/testing/test_case.py
+++ b/fastapi_startkit/src/fastapi_startkit/testing/test_case.py
@@ -8,16 +8,16 @@
class TestCase(IsolatedAsyncioTestCase):
- @pytest.fixture(scope='session', autouse=True)
+ @pytest.fixture(scope="session", autouse=True)
async def app(self):
self.application = self.get_application()
def setUp(self):
- if hasattr(self, 'startTestRun'):
+ if hasattr(self, "startTestRun"):
self.startTestRun()
def tearDown(self):
- if hasattr(self, 'stopTestRun'):
+ if hasattr(self, "stopTestRun"):
self.stopTestRun()
async def asyncSetUp(self):
@@ -29,5 +29,4 @@ async def asyncTearDown(self):
await self.asyncStopTestRun()
@abstractmethod
- def get_application(self) -> 'Application':
- ...
+ def get_application(self) -> "Application": ...
diff --git a/fastapi_startkit/src/fastapi_startkit/utils/collections.py b/fastapi_startkit/src/fastapi_startkit/utils/collections.py
index 441f552f..2c5e2384 100644
--- a/fastapi_startkit/src/fastapi_startkit/utils/collections.py
+++ b/fastapi_startkit/src/fastapi_startkit/utils/collections.py
@@ -250,9 +250,7 @@ def pluck(self, value, key=None):
for k, v in iterable:
if k == value:
if key:
- attributes[self._data_get(item, key)] = self._data_get(
- item, value
- )
+ attributes[self._data_get(item, key)] = self._data_get(item, value)
else:
attributes.append(v)
diff --git a/fastapi_startkit/src/fastapi_startkit/utils/str.py b/fastapi_startkit/src/fastapi_startkit/utils/str.py
index e6c3db32..07eeaa5e 100644
--- a/fastapi_startkit/src/fastapi_startkit/utils/str.py
+++ b/fastapi_startkit/src/fastapi_startkit/utils/str.py
@@ -15,9 +15,7 @@ def random_string(length=4):
Returns:
string
"""
- return "".join(
- random.choice(string.ascii_uppercase + string.digits) for _ in range(length)
- )
+ return "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(length))
def modularize(file_path, suffix=".py"):
@@ -81,9 +79,7 @@ def add_query_params(url: str, query_params: dict) -> str:
"""Add query params dict to a given url (which can already contain some query parameters)."""
path_result = parse.urlsplit(url)
- base_url = (
- f"{path_result.scheme}://{path_result.hostname}" if path_result.hostname else ""
- )
+ base_url = f"{path_result.scheme}://{path_result.hostname}" if path_result.hostname else ""
base_path = path_result.path
# parse existing query parameters if any
diff --git a/fastapi_startkit/src/fastapi_startkit/utils/structures.py b/fastapi_startkit/src/fastapi_startkit/utils/structures.py
index 838c95fd..3cce83d0 100644
--- a/fastapi_startkit/src/fastapi_startkit/utils/structures.py
+++ b/fastapi_startkit/src/fastapi_startkit/utils/structures.py
@@ -6,7 +6,6 @@
from ..exceptions.exceptions import LoaderNotFound
-
def load(path, object_name=None, default=None, raise_exception=False):
"""Load the given object from a Python module located at path and returns a default
value if not found. If no object name is provided, loads the module.
@@ -19,11 +18,7 @@ def load(path, object_name=None, default=None, raise_exception=False):
{object} -- The value (or default) read in the module or the module if no object name
"""
try:
- name = (
- path.split("/")[-1].replace(".py", "")
- if "/" in path
- else path.replace(".py", "")
- )
+ name = path.split("/")[-1].replace(".py", "") if "/" in path else path.replace(".py", "")
spec = importlib.util.spec_from_file_location(name, path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
diff --git a/fastapi_startkit/src/fastapi_startkit/vite/providers/provider.py b/fastapi_startkit/src/fastapi_startkit/vite/providers/provider.py
index 451e0500..4e0e7c33 100644
--- a/fastapi_startkit/src/fastapi_startkit/vite/providers/provider.py
+++ b/fastapi_startkit/src/fastapi_startkit/vite/providers/provider.py
@@ -36,9 +36,7 @@ def boot(self) -> None:
self.mount_static_file_if_require(config)
self.register_jinja_directives(vite)
- source = os.path.abspath(
- str(os.path.join(str(os.path.dirname(__file__)), "../config/vite.py"))
- )
+ source = os.path.abspath(str(os.path.join(str(os.path.dirname(__file__)), "../config/vite.py")))
self.publishes({source: "config/vite.py"})
stubs_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../stubs"))
@@ -82,6 +80,4 @@ def register_jinja_directives(self, vite: Vite):
templates.env.globals["vite"] = lambda *a, **kw: Markup(vite(*a, **kw))
templates.env.globals["vite_asset"] = vite.asset
- templates.env.globals["vite_react_refresh"] = lambda: Markup(
- vite.react_refresh()
- )
+ templates.env.globals["vite_react_refresh"] = lambda: Markup(vite.react_refresh())
diff --git a/fastapi_startkit/src/fastapi_startkit/vite/vite.py b/fastapi_startkit/src/fastapi_startkit/vite/vite.py
index 8f2a8e9a..a62be688 100644
--- a/fastapi_startkit/src/fastapi_startkit/vite/vite.py
+++ b/fastapi_startkit/src/fastapi_startkit/vite/vite.py
@@ -77,9 +77,7 @@ def with_entry_points(self, entry_points: list[str]) -> "Vite":
self._entry_points = entry_points
return self
- def create_asset_paths_using(
- self, resolver: Optional[Callable[[str], str]]
- ) -> "Vite":
+ def create_asset_paths_using(self, resolver: Optional[Callable[[str], str]]) -> "Vite":
"""Override the default asset URL builder with a custom callable."""
self._asset_path_resolver = resolver
return self
@@ -119,15 +117,9 @@ def __call__(
if self.is_running_hot():
hot_origin = self._read_hot_origin()
- tags = [
- self._make_tag_for_chunk(
- "@vite/client", f"{hot_origin}/@vite/client", None, None
- )
- ]
+ tags = [self._make_tag_for_chunk("@vite/client", f"{hot_origin}/@vite/client", None, None)]
for ep in entrypoints:
- tags.append(
- self._make_tag_for_chunk(ep, f"{hot_origin}/{ep}", None, None)
- )
+ tags.append(self._make_tag_for_chunk(ep, f"{hot_origin}/{ep}", None, None))
return "".join(tags)
manifest = self._manifest(build_directory)
@@ -284,9 +276,7 @@ def _manifest(self, build_directory: str) -> dict:
path = self._manifest_path(build_directory)
if path not in Vite._manifests:
if not os.path.isfile(path):
- raise ViteManifestNotFoundException(
- f"Vite manifest not found at: {path}"
- )
+ raise ViteManifestNotFoundException(f"Vite manifest not found at: {path}")
with open(path) as f:
Vite._manifests[path] = json.load(f)
return Vite._manifests[path]
@@ -321,9 +311,7 @@ def _resolve_imports(
seen[import_key] = True
imports.append(import_key)
if import_key in manifest:
- imports.extend(
- self._resolve_imports(manifest, manifest[import_key], seen)
- )
+ imports.extend(self._resolve_imports(manifest, manifest[import_key], seen))
return imports
def _make_tag_for_chunk(
@@ -354,9 +342,7 @@ def _make_preload_tag_for_chunk(
if attributes is False:
return ""
- self._preloaded_assets[url] = self._parse_attributes(
- {k: v for k, v in attributes.items() if k != "href"}
- )
+ self._preloaded_assets[url] = self._parse_attributes({k: v for k, v in attributes.items() if k != "href"})
return f""
def _resolve_script_tag_attributes(self, src, url, chunk, manifest) -> dict:
@@ -382,18 +368,16 @@ def _resolve_preload_tag_attributes(self, src, url, chunk, manifest) -> dict | b
"as": "style",
"href": url,
"nonce": self._nonce or False,
- "crossorigin": self._resolve_stylesheet_tag_attributes(
- src, url, chunk, manifest
- ).get("crossorigin", False),
+ "crossorigin": self._resolve_stylesheet_tag_attributes(src, url, chunk, manifest).get(
+ "crossorigin", False
+ ),
}
else:
attrs = {
"rel": "modulepreload",
"href": url,
"nonce": self._nonce or False,
- "crossorigin": self._resolve_script_tag_attributes(
- src, url, chunk, manifest
- ).get("crossorigin", False),
+ "crossorigin": self._resolve_script_tag_attributes(src, url, chunk, manifest).get("crossorigin", False),
}
if self._integrity_key is not False:
diff --git a/fastapi_startkit/tests/conftest.py b/fastapi_startkit/tests/conftest.py
index 7afb3baf..bf98a4f2 100644
--- a/fastapi_startkit/tests/conftest.py
+++ b/fastapi_startkit/tests/conftest.py
@@ -4,4 +4,4 @@
@pytest.fixture(scope="session", autouse=True)
def init_app():
- Application(env="testing")
\ No newline at end of file
+ Application(env="testing")
diff --git a/fastapi_startkit/tests/inertia/test_inertia.py b/fastapi_startkit/tests/inertia/test_inertia.py
index ecb7375f..f6a9dced 100644
--- a/fastapi_startkit/tests/inertia/test_inertia.py
+++ b/fastapi_startkit/tests/inertia/test_inertia.py
@@ -1,6 +1,7 @@
import unittest
from fastapi_startkit.inertia.inertia import Inertia, ResponseFactory, InertiaResponse
+
class TestInertia(unittest.TestCase):
def setUp(self):
# Reset the singleton instance before each test
@@ -31,7 +32,7 @@ def test_factory_render_returns_response(self):
factory = ResponseFactory()
factory.share("auth", {"user": None})
response = factory.render("Dashboard", {"count": 10})
-
+
self.assertIsInstance(response, InertiaResponse)
self.assertEqual(response.component, "Dashboard")
self.assertEqual(response.props, {"count": 10})
@@ -45,9 +46,9 @@ def test_facade_singleton(self):
def test_facade_proxies_to_instance(self):
Inertia.share("foo", "bar")
self.assertEqual(Inertia.instance().shared_props["foo"], "bar")
-
+
Inertia.version("v1")
self.assertEqual(Inertia.get_version(), "v1")
-
+
Inertia.set_root_view("app.html")
self.assertEqual(Inertia.instance().root_view, "app.html")
diff --git a/fastapi_startkit/tests/inertia/test_inertia_response.py b/fastapi_startkit/tests/inertia/test_inertia_response.py
index aad54ece..96015e3e 100644
--- a/fastapi_startkit/tests/inertia/test_inertia_response.py
+++ b/fastapi_startkit/tests/inertia/test_inertia_response.py
@@ -5,6 +5,7 @@
from fastapi_startkit.inertia.inertia import InertiaResponse, OptionalProp
from fastapi_startkit.inertia.constant import Header
+
class TestInertiaResponse(unittest.IsolatedAsyncioTestCase):
def setUp(self):
self.mock_request = MagicMock(spec=Request)
@@ -13,19 +14,16 @@ def setUp(self):
async def test_inertia_response_to_json_on_inertia_request(self):
self.mock_request.headers = {Header.INERTIA: "true"}
-
+
response = InertiaResponse(
- component="User/Index",
- shared_props={"app": "Test"},
- props={"users": []},
- version="v1"
+ component="User/Index", shared_props={"app": "Test"}, props={"users": []}, version="v1"
)
-
+
actual_response = await response.to_response(self.mock_request)
-
+
self.assertEqual(actual_response.status_code, 200)
self.assertEqual(actual_response.headers[Header.INERTIA], "true")
-
+
content = json.loads(actual_response.body)
self.assertEqual(content["component"], "User/Index")
self.assertEqual(content["props"], {"app": "Test", "users": []})
@@ -36,18 +34,18 @@ async def test_inertia_response_partial_reload(self):
self.mock_request.headers = {
Header.INERTIA: "true",
Header.INERTIA_PARTIAL_COMPONENT: "User/Index",
- "X-Inertia-Partial-Data": "users"
+ "X-Inertia-Partial-Data": "users",
}
-
+
response = InertiaResponse(
component="User/Index",
shared_props={"app": "Test"},
props={"users": ["user1"], "stats": {"likes": 10}},
)
-
+
actual_response = await response.to_response(self.mock_request)
data = json.loads(actual_response.body)
-
+
# Should only include "users", exclude "app" and "stats"
self.assertIn("users", data["props"])
self.assertNotIn("app", data["props"])
@@ -56,8 +54,9 @@ async def test_inertia_response_partial_reload(self):
async def test_inertia_response_optional_props(self):
# 1. Normal request - optional prop should be excluded
self.mock_request.headers = {Header.INERTIA: "true"}
-
+
lazy_called = False
+
def get_lazy():
nonlocal lazy_called
lazy_called = True
@@ -68,7 +67,7 @@ def get_lazy():
shared_props={},
props={"regular": "data", "lazy": OptionalProp(get_lazy)},
)
-
+
actual_response = await response.to_response(self.mock_request)
data = json.loads(actual_response.body)
self.assertEqual(data["props"], {"regular": "data"})
@@ -78,9 +77,9 @@ def get_lazy():
self.mock_request.headers = {
Header.INERTIA: "true",
Header.INERTIA_PARTIAL_COMPONENT: "User/Index",
- "X-Inertia-Partial-Data": "lazy"
+ "X-Inertia-Partial-Data": "lazy",
}
-
+
actual_response = await response.to_response(self.mock_request)
data = json.loads(actual_response.body)
self.assertEqual(data["props"], {"lazy": "lazy data"})
@@ -88,7 +87,7 @@ def get_lazy():
async def test_inertia_response_resolves_callable_props(self):
self.mock_request.headers = {Header.INERTIA: "true"}
-
+
async def get_async_data():
return "async result"
@@ -97,7 +96,7 @@ async def get_async_data():
shared_props={"sync": lambda: "sync result"},
props={"async": get_async_data},
)
-
+
actual_response = await response.to_response(self.mock_request)
data = json.loads(actual_response.body)
self.assertEqual(data["props"]["sync"], "sync result")
@@ -106,9 +105,9 @@ async def get_async_data():
async def test_inertia_response_initial_render_raises_if_no_templates(self):
# Standard request (no X-Inertia header)
self.mock_request.headers = {}
-
+
response = InertiaResponse(component="Test", shared_props={}, props={})
-
+
# This should fail because we haven't mocked the application container
with self.assertRaisesRegex(RuntimeError, "Inertia requires 'templates' to be bound"):
await response.to_response(self.mock_request)
diff --git a/fastapi_startkit/tests/inertia/test_middleware.py b/fastapi_startkit/tests/inertia/test_middleware.py
index 9ff2eed8..e2b81f83 100644
--- a/fastapi_startkit/tests/inertia/test_middleware.py
+++ b/fastapi_startkit/tests/inertia/test_middleware.py
@@ -6,28 +6,32 @@
from fastapi_startkit.inertia.constant import Header
from fastapi_startkit.inertia.inertia import Inertia
+
class TestInertiaMiddleware(unittest.IsolatedAsyncioTestCase):
def setUp(self):
self.app = FastAPI()
self.app.add_middleware(InertiaMiddleware)
-
+
@self.app.get("/test")
async def test_route():
return {"message": "ok"}
-
+
@self.app.post("/redirect")
async def test_redirect():
from fastapi.responses import RedirectResponse
+
return RedirectResponse(url="/test", status_code=302)
@self.app.put("/redirect-put")
async def test_redirect_put():
from fastapi.responses import RedirectResponse
+
return RedirectResponse(url="/test", status_code=302)
@self.app.get("/fragment-redirect")
async def test_fragment_redirect():
from fastapi.responses import RedirectResponse
+
return RedirectResponse(url="/test#section", status_code=302)
self.client = TestClient(self.app)
@@ -43,19 +47,16 @@ def test_middleware_version_conflict(self, mock_app_getter):
# Setup mock container
mock_container = MagicMock()
mock_app_getter.return_value = mock_container
-
+
# Mock Vite version
mock_vite = MagicMock()
mock_vite.manifest_hash.return_value = "v2"
mock_container.has.side_effect = lambda k: k == "vite"
mock_container.make.side_effect = lambda k: mock_vite if k == "vite" else None
-
+
# Request with old version
- response = self.client.get("/test", headers={
- Header.INERTIA: "true",
- Header.INERTIA_VERSION: "v1"
- })
-
+ response = self.client.get("/test", headers={Header.INERTIA: "true", Header.INERTIA_VERSION: "v1"})
+
self.assertEqual(response.status_code, 409)
self.assertEqual(response.headers[Header.INERTIA_LOCATION], "http://testserver/test")
@@ -63,14 +64,14 @@ def test_middleware_changes_302_to_303_on_put_patch_delete(self):
# POST stays 302
response = self.client.post("/redirect", follow_redirects=False)
self.assertEqual(response.status_code, 302)
-
+
# PUT changes to 303
response = self.client.put("/redirect-put", follow_redirects=False, headers={Header.INERTIA: "true"})
self.assertEqual(response.status_code, 303)
def test_middleware_redirect_with_fragment(self):
response = self.client.get("/fragment-redirect", headers={Header.INERTIA: "true"})
-
+
self.assertEqual(response.status_code, 409)
self.assertEqual(response.headers[Header.INERTIA_REDIRECT], "/test#section")
@@ -79,16 +80,16 @@ def test_middleware_resolves_validation_errors_from_session(self, mock_app_gette
# We need a fresh app and session-enabled middleware
from fastapi import Request
from starlette.middleware.sessions import SessionMiddleware
-
+
app = FastAPI()
app.add_middleware(InertiaMiddleware)
app.add_middleware(SessionMiddleware, secret_key="secret")
-
+
@app.get("/set-errors")
def set_errors(request: Request):
request.session["errors"] = {"email": "Required"}
return "ok"
-
+
@app.get("/check-errors")
def check_errors(request: Request):
# Middleware should have shared the errors from the session
@@ -99,15 +100,15 @@ def check_errors(request: Request):
mock_container = MagicMock()
mock_app_getter.return_value = mock_container
mock_container.has.return_value = False
-
+
client = TestClient(app)
-
+
# Reset Inertia singleton for this specific test
Inertia._instance = None
# 1. First request sets the errors in session
client.get("/set-errors")
-
+
# 2. Second request should have errors shared by middleware
response = client.get("/check-errors")
self.assertEqual(response.json(), {"email": "Required"})
diff --git a/fastapi_startkit/tests/masoniteorm/collection/test_collection.py b/fastapi_startkit/tests/masoniteorm/collection/test_collection.py
index 15f2675b..e44a4841 100644
--- a/fastapi_startkit/tests/masoniteorm/collection/test_collection.py
+++ b/fastapi_startkit/tests/masoniteorm/collection/test_collection.py
@@ -240,9 +240,7 @@ def test_count(self):
collection = Collection([1, 1, 2, 4])
self.assertEqual(collection.count(), 4)
- collection = Collection(
- [{"name": "Corentin All", "age": 1}, {"name": "Corentin All", "age": 2}]
- )
+ collection = Collection([{"name": "Corentin All", "age": 1}, {"name": "Corentin All", "age": 2}])
self.assertEqual(collection.count(), 2)
def test_chunk(self):
@@ -364,9 +362,7 @@ def test_reject(self):
collection.reject(lambda x: x if x["age"] > 2 else None)
self.assertEqual(
- Collection(
- [{"name": "Corentin All", "age": 3}, {"name": "Corentin All", "age": 4}]
- ),
+ Collection([{"name": "Corentin All", "age": 3}, {"name": "Corentin All", "age": 4}]),
collection.all(),
)
@@ -507,9 +503,7 @@ def test_implode(self):
result = collection.implode("-")
self.assertEqual(result, "1-2-3-4")
- collection = Collection(
- [{"name": "Corentin"}, {"name": "Joe"}, {"name": "Marlysson"}]
- )
+ collection = Collection([{"name": "Corentin"}, {"name": "Joe"}, {"name": "Marlysson"}])
result = collection.implode(key="name")
self.assertEqual(result, "Corentin,Joe,Marlysson")
@@ -524,9 +518,7 @@ def __eq__(self, other):
return self.code == other.code
currencies = collection.map_into(Currency)
- self.assertEqual(
- currencies.all(), [Currency("USD"), Currency("EUR"), Currency("GBP")]
- )
+ self.assertEqual(currencies.all(), [Currency("USD"), Currency("EUR"), Currency("GBP")])
def test_map(self):
collection = Collection([1, 2, 3, 4])
diff --git a/fastapi_startkit/tests/masoniteorm/commands/fixtures/app.py b/fastapi_startkit/tests/masoniteorm/commands/fixtures/app.py
index 43004174..2ac25e15 100644
--- a/fastapi_startkit/tests/masoniteorm/commands/fixtures/app.py
+++ b/fastapi_startkit/tests/masoniteorm/commands/fixtures/app.py
@@ -1,6 +1,4 @@
-from dataclasses import dataclass, field
from pathlib import Path
-from typing import Dict, Any
from fastapi_startkit.application import Application
from fastapi_startkit.masoniteorm import SQLiteConfig
@@ -14,15 +12,18 @@ def create_app() -> Application:
return Application(
base_path=BASE_DIR,
providers=[
- (DatabaseProvider, {
- "default": "sqlite",
- "connections": {
- "sqlite": SQLiteConfig(
- driver="sqlite",
- url=f"sqlite+aiosqlite:///{DB_PATH}",
- options=None,
- ),
- }
- }),
+ (
+ DatabaseProvider,
+ {
+ "default": "sqlite",
+ "connections": {
+ "sqlite": SQLiteConfig(
+ driver="sqlite",
+ url=f"sqlite+aiosqlite:///{DB_PATH}",
+ options=None,
+ ),
+ },
+ },
+ ),
],
)
diff --git a/fastapi_startkit/tests/masoniteorm/commands/fixtures/databases/migrations/2026_01_01_000001_add_body_to_posts_table.py b/fastapi_startkit/tests/masoniteorm/commands/fixtures/databases/migrations/2026_01_01_000001_add_body_to_posts_table.py
index 9d6176e2..e1ed5718 100644
--- a/fastapi_startkit/tests/masoniteorm/commands/fixtures/databases/migrations/2026_01_01_000001_add_body_to_posts_table.py
+++ b/fastapi_startkit/tests/masoniteorm/commands/fixtures/databases/migrations/2026_01_01_000001_add_body_to_posts_table.py
@@ -8,4 +8,4 @@ async def up(self):
async def down(self):
async with await self.schema.table("posts") as table:
- table.drop_column("body")
\ No newline at end of file
+ table.drop_column("body")
diff --git a/fastapi_startkit/tests/masoniteorm/commands/test_shell.py b/fastapi_startkit/tests/masoniteorm/commands/test_shell.py
index 6d158c1c..40d5e3c3 100644
--- a/fastapi_startkit/tests/masoniteorm/commands/test_shell.py
+++ b/fastapi_startkit/tests/masoniteorm/commands/test_shell.py
@@ -63,10 +63,7 @@ def test_for_mssql(self):
"full_details": {"driver": "mssql"},
}
command, _ = self.command.get_command(config)
- assert (
- command
- == "sqlcmd -d orm -U root -P secretpostgres -S tcp:db.masonite.com,1234"
- )
+ assert command == "sqlcmd -d orm -U root -P secretpostgres -S tcp:db.masonite.com,1234"
@skip("ShellCommand.handle() uses legacy load_config() not available in new framework")
def test_running_command_with_sqlite(self):
@@ -86,6 +83,4 @@ def test_hiding_sensitive_options(self):
}
command, _ = self.command.get_command(config)
cleaned_command = self.command.hide_sensitive_options(config, command)
- assert (
- cleaned_command == "mysql orm --host localhost --user root --password ***"
- )
+ assert cleaned_command == "mysql orm --host localhost --user root --password ***"
diff --git a/fastapi_startkit/tests/masoniteorm/configurations/test_config_merge.py b/fastapi_startkit/tests/masoniteorm/configurations/test_config_merge.py
index acba8948..e7ab29e7 100644
--- a/fastapi_startkit/tests/masoniteorm/configurations/test_config_merge.py
+++ b/fastapi_startkit/tests/masoniteorm/configurations/test_config_merge.py
@@ -34,9 +34,7 @@ def test_merge_with_file_path(self):
config.set("testkey", {"existing": "orig"})
# Mock Loader to return params from file
- with patch(
- "fastapi_startkit.configuration.Configuration.Loader"
- ) as MockLoaderClass:
+ with patch("fastapi_startkit.configuration.Configuration.Loader") as MockLoaderClass:
mock_loader = MockLoaderClass.return_value
mock_loader.get_parameters.return_value = {
"New": "from_file",
diff --git a/fastapi_startkit/tests/masoniteorm/fixtures/casts.py b/fastapi_startkit/tests/masoniteorm/fixtures/casts.py
index c06b74df..889982d5 100644
--- a/fastapi_startkit/tests/masoniteorm/fixtures/casts.py
+++ b/fastapi_startkit/tests/masoniteorm/fixtures/casts.py
@@ -2,6 +2,7 @@
from pydantic import BaseModel
+
class Address(BaseModel):
address: Optional[str] = None
city: Optional[str] = None
diff --git a/fastapi_startkit/tests/masoniteorm/fixtures/factory.py b/fastapi_startkit/tests/masoniteorm/fixtures/factory.py
index e1ae84e4..7e85a5d9 100644
--- a/fastapi_startkit/tests/masoniteorm/fixtures/factory.py
+++ b/fastapi_startkit/tests/masoniteorm/fixtures/factory.py
@@ -1,4 +1,3 @@
-
from fastapi_startkit.orm.factory.factory import Factory
from .model import User
diff --git a/fastapi_startkit/tests/masoniteorm/fixtures/model.py b/fastapi_startkit/tests/masoniteorm/fixtures/model.py
index ac761cc9..167343f4 100644
--- a/fastapi_startkit/tests/masoniteorm/fixtures/model.py
+++ b/fastapi_startkit/tests/masoniteorm/fixtures/model.py
@@ -31,10 +31,10 @@ class User(Model):
articles: "Articles" = HasMany("Articles", "id", "user_id")
logos: "Logo" = HasManyThrough(
["Logo", "Articles"],
- "user_id", # FK on Articles → User (intermediate.local_key, used in WHERE)
- "id", # PK on Articles (intermediate.foreign_key, join left side)
- "id", # PK on User (owner.local_owner_key, WHERE value)
- "article_id", # FK on Logo → Articles (distant.other_owner_key, join right side)
+ "user_id", # FK on Articles → User (intermediate.local_key, used in WHERE)
+ "id", # PK on Articles (intermediate.foreign_key, join left side)
+ "id", # PK on User (owner.local_owner_key, WHERE value)
+ "article_id", # FK on Logo → Articles (distant.other_owner_key, join right side)
)
def get_is_admin(self) -> bool:
@@ -63,12 +63,8 @@ class Articles(Model):
class Store(Model):
- products: "Product" = BelongsToMany(
- "Product", "store_id", "product_id", "id", "id", with_timestamps=True
- )
- products_table: "Product" = BelongsToMany(
- "Product", "store_id", "product_id", "id", "id", table="product_table"
- )
+ products: "Product" = BelongsToMany("Product", "store_id", "product_id", "id", "id", with_timestamps=True)
+ products_table: "Product" = BelongsToMany("Product", "store_id", "product_id", "id", "id", table="product_table")
store_products: "Product" = BelongsToMany("Product")
@@ -105,5 +101,3 @@ class IncomingShipment(Model):
"port_id", # PK on Port
"country_id", # PK on Country
)
-
-
diff --git a/fastapi_startkit/tests/masoniteorm/models/test_model.py b/fastapi_startkit/tests/masoniteorm/models/test_model.py
index 582f412b..c3f4870c 100644
--- a/fastapi_startkit/tests/masoniteorm/models/test_model.py
+++ b/fastapi_startkit/tests/masoniteorm/models/test_model.py
@@ -114,10 +114,7 @@ async def test_save_with_datetime_field(self, UserModel, users_table):
saved = await user.save()
assert saved is True
- assert (
- user.email_verified_at.format("YYYY-MM-DD HH:mm:ss")
- == "2026-10-01 12:12:12"
- )
+ assert user.email_verified_at.format("YYYY-MM-DD HH:mm:ss") == "2026-10-01 12:12:12"
# ---------------------------------------------------------------------------
diff --git a/fastapi_startkit/tests/masoniteorm/models/test_model_attributes.py b/fastapi_startkit/tests/masoniteorm/models/test_model_attributes.py
index 1aec2193..dc4d3d2e 100644
--- a/fastapi_startkit/tests/masoniteorm/models/test_model_attributes.py
+++ b/fastapi_startkit/tests/masoniteorm/models/test_model_attributes.py
@@ -48,9 +48,7 @@ class User(Model):
class TestConnectionFactory:
def test_build_url_uses_explicit_url(self):
- url = ConnectionFactory.build_url(
- {"driver": "sqlite", "url": "sqlite+aiosqlite:///test.db"}
- )
+ url = ConnectionFactory.build_url({"driver": "sqlite", "url": "sqlite+aiosqlite:///test.db"})
assert url == "sqlite+aiosqlite:///test.db"
def test_build_url_constructs_from_parts(self):
@@ -152,10 +150,7 @@ def test_email_verified_at_format(self, UserModel):
email="alex@gmail.com",
email_verified_at="2026-10-01 12:12:12",
)
- assert (
- user.email_verified_at.format("YYYY-MM-DD HH:mm:ss")
- == "2026-10-01 12:12:12"
- )
+ assert user.email_verified_at.format("YYYY-MM-DD HH:mm:ss") == "2026-10-01 12:12:12"
def test_email_verified_at_none_when_not_set(self, UserModel):
user = UserModel(name="Alex", email="alex@gmail.com")
diff --git a/fastapi_startkit/tests/masoniteorm/models/test_model_query.py b/fastapi_startkit/tests/masoniteorm/models/test_model_query.py
index db76588e..ec217b5c 100644
--- a/fastapi_startkit/tests/masoniteorm/models/test_model_query.py
+++ b/fastapi_startkit/tests/masoniteorm/models/test_model_query.py
@@ -105,9 +105,7 @@ async def test_where_dict(self, UserModel, seeded_users):
results = await UserModel.where({"name": "Alice", "is_admin": True}).get()
assert len(results) == 1
- async def test_where_returns_empty_collection_when_no_match(
- self, UserModel, seeded_users
- ):
+ async def test_where_returns_empty_collection_when_no_match(self, UserModel, seeded_users):
results = await UserModel.where("name", "Nobody").get()
assert len(results) == 0
@@ -124,18 +122,12 @@ async def test_or_where_matches_either_condition(self, UserModel, seeded_users):
assert names == {"Alice", "Bob"}
async def test_or_where_no_match_returns_empty(self, UserModel, seeded_users):
- results = (
- await UserModel.where("name", "Nobody").or_where("name", "Ghost").get()
- )
+ results = await UserModel.where("name", "Nobody").or_where("name", "Ghost").get()
assert len(results) == 0
async def test_or_where_like(self, UserModel, seeded_users):
# Match names starting with 'A' OR ending with 'e'
- results = (
- await UserModel.where("name", "like", "A%")
- .or_where("name", "like", "%e")
- .get()
- )
+ results = await UserModel.where("name", "like", "A%").or_where("name", "like", "%e").get()
names = {u.name for u in results}
# "Alice" matches both; "Charlie" matches '%e'
assert "Alice" in names
@@ -329,10 +321,5 @@ async def test_where_and_select(self, UserModel, seeded_users):
assert results.first().name == "Alice"
async def test_or_where_and_limit(self, UserModel, seeded_users):
- results = (
- await UserModel.where("name", "Alice")
- .or_where("name", "Charlie")
- .limit(1)
- .get()
- )
+ results = await UserModel.where("name", "Alice").or_where("name", "Charlie").limit(1).get()
assert len(results) == 1
diff --git a/fastapi_startkit/tests/masoniteorm/postgres/fixtures/db.py b/fastapi_startkit/tests/masoniteorm/postgres/fixtures/db.py
index 4e328f00..d4c4f5f3 100644
--- a/fastapi_startkit/tests/masoniteorm/postgres/fixtures/db.py
+++ b/fastapi_startkit/tests/masoniteorm/postgres/fixtures/db.py
@@ -1,7 +1,10 @@
from fastapi_startkit.masoniteorm.connections.factory import ConnectionFactory
from fastapi_startkit.masoniteorm.connections.manager import DatabaseManager
-URL = "postgresql+asyncpg://app:secret@localhost:5432/database_app_test"
+import os
+
+_port = os.getenv("POSTGRES_PORT", "5432")
+URL = f"postgresql+asyncpg://app:secret@localhost:{_port}/database_app_test"
DB = DatabaseManager(
ConnectionFactory(),
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder.py b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder.py
index ccd36e0e..41094d1c 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder.py
@@ -52,11 +52,11 @@ async def test_where_not_in(self):
async def test_between(self):
sql = User.query().between("id", 2, 5).to_sql()
- self.assertEqual(sql, "SELECT * FROM \"users\" WHERE \"users\".\"id\" BETWEEN '2' AND '5'")
+ self.assertEqual(sql, 'SELECT * FROM "users" WHERE "users"."id" BETWEEN \'2\' AND \'5\'')
async def test_not_between(self):
sql = User.query().not_between("id", 2, 5).to_sql()
- self.assertEqual(sql, "SELECT * FROM \"users\" WHERE \"users\".\"id\" NOT BETWEEN '2' AND '5'")
+ self.assertEqual(sql, 'SELECT * FROM "users" WHERE "users"."id" NOT BETWEEN \'2\' AND \'5\'')
async def test_join(self):
sql = User.query().join("profiles", "users.id", "=", "profiles.user_id").to_sql()
@@ -76,7 +76,7 @@ async def test_or_where(self):
sql = User.query().where("age", "20").or_where("age", "<", 20).to_sql()
self.assertEqual(
sql,
- "SELECT * FROM \"users\" WHERE \"users\".\"age\" = '20' OR \"users\".\"age\" < '20'",
+ 'SELECT * FROM "users" WHERE "users"."age" = \'20\' OR "users"."age" < \'20\'',
)
async def test_where_column(self):
@@ -85,7 +85,7 @@ async def test_where_column(self):
async def test_when_true_applies_condition(self):
sql = User.query().when(True, lambda q: q.where("is_admin", 1)).to_sql()
- self.assertEqual(sql, "SELECT * FROM \"users\" WHERE \"users\".\"is_admin\" = '1'")
+ self.assertEqual(sql, 'SELECT * FROM "users" WHERE "users"."is_admin" = \'1\'')
async def test_when_false_skips_condition(self):
sql = User.query().when(False, lambda q: q.where("is_admin", 1)).to_sql()
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_eager_loading.py b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_eager_loading.py
index 7ec6ba91..6c822153 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_eager_loading.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_eager_loading.py
@@ -1,6 +1,4 @@
-from unittest.mock import AsyncMock
-
-from ...fixtures.model import User, Articles, Profile
+from ...fixtures.model import User
from ..fixtures.db import DB
from ..test_case import TestCase
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_relationships.py b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_relationships.py
index 4d92d978..25c51a18 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_relationships.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/builder/test_sqlite_query_builder_relationships.py
@@ -13,26 +13,22 @@ def test_where_has_generates_exists_subquery(self):
sql = User.query().where_has("articles").to_sql()
self.assertEqual(
sql,
- 'SELECT * FROM "users" WHERE EXISTS '
- '(SELECT * FROM "articles" WHERE articles.user_id = users.id)',
+ 'SELECT * FROM "users" WHERE EXISTS (SELECT * FROM "articles" WHERE articles.user_id = users.id)',
)
def test_where_has_with_callback_appends_condition(self):
- sql = User.query().where_has(
- "articles", lambda q: q.where("id", 1)
- ).to_sql()
+ sql = User.query().where_has("articles", lambda q: q.where("id", 1)).to_sql()
self.assertEqual(
sql,
'SELECT * FROM "users" WHERE EXISTS '
- "(SELECT * FROM \"articles\" WHERE articles.user_id = users.id AND \"articles\".\"id\" = '1')",
+ '(SELECT * FROM "articles" WHERE articles.user_id = users.id AND "articles"."id" = \'1\')',
)
def test_where_has_profile_uses_correct_table(self):
sql = User.query().where_has("profile").to_sql()
self.assertEqual(
sql,
- 'SELECT * FROM "users" WHERE EXISTS '
- '(SELECT * FROM "profiles" WHERE profiles.user_id = users.id)',
+ 'SELECT * FROM "users" WHERE EXISTS (SELECT * FROM "profiles" WHERE profiles.user_id = users.id)',
)
@@ -49,8 +45,7 @@ async def test_where_has_executes_exists_subquery(self):
sql, bindings = mock_select.call_args[0]
self.assertEqual(
sql,
- 'SELECT * FROM "users" WHERE EXISTS '
- "(SELECT * FROM \"articles\" WHERE articles.user_id = users.id)",
+ 'SELECT * FROM "users" WHERE EXISTS (SELECT * FROM "articles" WHERE articles.user_id = users.id)',
)
self.assertEqual(list(bindings), [])
@@ -65,6 +60,6 @@ async def test_where_has_with_callback_passes_correct_sql_and_bindings(self):
self.assertEqual(
sql,
'SELECT * FROM "users" WHERE EXISTS '
- "(SELECT * FROM \"articles\" WHERE articles.user_id = users.id AND \"articles\".\"id\" = ?)",
+ '(SELECT * FROM "articles" WHERE articles.user_id = users.id AND "articles"."id" = ?)',
)
self.assertEqual(list(bindings), [1])
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/fixtures/migrations/2026_01_01_000000_create_posts_table.py b/fastapi_startkit/tests/masoniteorm/sqlite/fixtures/migrations/2026_01_01_000000_create_posts_table.py
index 9964a31b..da5d81f1 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/fixtures/migrations/2026_01_01_000000_create_posts_table.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/fixtures/migrations/2026_01_01_000000_create_posts_table.py
@@ -9,4 +9,4 @@ async def up(self):
table.timestamps()
async def down(self):
- await self.schema.drop("posts")
\ No newline at end of file
+ await self.schema.drop("posts")
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/models/test_sqlite_model_casts.py b/fastapi_startkit/tests/masoniteorm/sqlite/models/test_sqlite_model_casts.py
index d2bcaa29..6d980fc3 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/models/test_sqlite_model_casts.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/models/test_sqlite_model_casts.py
@@ -79,12 +79,14 @@ async def test_sqlite_model_casts_pydantic_object_none(self):
async def test_sqlite_model_casts_pydantic_object_insert_with_instance(self):
address = Address(address="456 Queen St", city="Melbourne", state="VIC", country="Australia")
- await User.create({
- "email": "instance@example.com",
- "name": "Instance User",
- "is_admin": False,
- "address": address,
- })
+ await User.create(
+ {
+ "email": "instance@example.com",
+ "name": "Instance User",
+ "is_admin": False,
+ "address": address,
+ }
+ )
fetched = await User.where("email", "instance@example.com").first()
@@ -93,12 +95,14 @@ async def test_sqlite_model_casts_pydantic_object_insert_with_instance(self):
self.assertEqual(fetched.address.city, "Melbourne")
async def test_sqlite_model_casts_pydantic_object_insert_with_dict(self):
- await User.create({
- "email": "dict@example.com",
- "name": "Dict User",
- "is_admin": False,
- "address": {"address": "789 King St", "city": "Brisbane", "state": "QLD", "country": "Australia"},
- })
+ await User.create(
+ {
+ "email": "dict@example.com",
+ "name": "Dict User",
+ "is_admin": False,
+ "address": {"address": "789 King St", "city": "Brisbane", "state": "QLD", "country": "Australia"},
+ }
+ )
fetched = await User.where("email", "dict@example.com").first()
@@ -107,13 +111,15 @@ async def test_sqlite_model_casts_pydantic_object_insert_with_dict(self):
self.assertEqual(fetched.address.city, "Brisbane")
async def test_sqlite_model_casts_datetime(self):
- await User.create({
- "email": "datetime@example.com",
- "name": "DateTime User",
- "is_admin": False,
- "email_verified_at": "2024-06-15 12:30:00",
- "date_of_birth": datetime.datetime.now(datetime.timezone.utc),
- })
+ await User.create(
+ {
+ "email": "datetime@example.com",
+ "name": "DateTime User",
+ "is_admin": False,
+ "email_verified_at": "2024-06-15 12:30:00",
+ "date_of_birth": datetime.datetime.now(datetime.timezone.utc),
+ }
+ )
user = await User.where("email", "datetime@example.com").first()
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_many_through_relationship.py b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_many_through_relationship.py
index 704eae21..e0a191a5 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_many_through_relationship.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_many_through_relationship.py
@@ -35,7 +35,5 @@ async def test_has_many_through_can_get_related(self):
assert logos.count() == 1
async def test_has_many_through_has_query(self):
- users = await User.where_has(
- "logos", lambda query: query
- ).get()
+ users = await User.where_has("logos", lambda query: query).get()
assert users.count() == 1
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_one_through_relationship.py b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_one_through_relationship.py
index cf7bed29..f403fb2e 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_one_through_relationship.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_has_one_through_relationship.py
@@ -4,9 +4,7 @@
class TestHasOneThroughRelationship(TestCase):
async def test_has_one_through_can_eager_load(self):
- shipments = await (
- IncomingShipment.where("name", "Bread").with_("from_country").get()
- )
+ shipments = await IncomingShipment.where("name", "Bread").with_("from_country").get()
assert shipments.count() == 2
shipment1 = shipments.shift()
@@ -18,19 +16,11 @@ async def test_has_one_through_can_eager_load(self):
assert shipment2.from_country.country_id == 40
# check .first() and .get() produce the same result
- single = await (
- IncomingShipment.where("name", "Tractor Parts")
- .with_("from_country")
- .first()
- )
- single_get = await (
- IncomingShipment.where("name", "Tractor Parts").with_("from_country").get()
- )
+ single = await IncomingShipment.where("name", "Tractor Parts").with_("from_country").first()
+ single_get = await IncomingShipment.where("name", "Tractor Parts").with_("from_country").get()
assert single.from_country.country_id == 10
assert single_get.count() == 1
- assert (
- single.from_country.country_id == single_get.first().from_country.country_id
- )
+ assert single.from_country.country_id == single_get.first().from_country.country_id
async def test_has_one_through_eager_load_can_be_empty(self):
shipments = await (
@@ -48,7 +38,5 @@ async def test_has_one_through_can_get_related(self):
assert country.country_id == 10
async def test_has_one_through_has_query(self):
- shipments = await IncomingShipment.where_has(
- "from_country", lambda query: query.where("name", "USA")
- ).get()
+ shipments = await IncomingShipment.where_has("from_country", lambda query: query.where("name", "USA")).get()
assert shipments.count() == 2
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_polymorphic.py b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_polymorphic.py
index 659d8d0b..675cf79a 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_polymorphic.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/relationships/test_sqlite_polymorphic.py
@@ -1,4 +1,3 @@
-from dumpdie import dd
from fastapi_startkit.masoniteorm.models.registry import Registry
from ...fixtures.model import Articles, Like, Product
from ..test_case import TestCase
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder.py b/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder.py
index 906ac0d2..9c2a72b3 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder.py
@@ -1,7 +1,5 @@
from unittest.mock import AsyncMock, MagicMock
-from fastapi_startkit.masoniteorm.migrations.Migration import Migration
-from fastapi_startkit.masoniteorm.models.MigrationModel import MigrationModel
from ..test_case import TestCase
@@ -18,9 +16,7 @@ async def test_can_add_columns(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
await blueprint.to_sql(),
- [
- 'CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'
- ],
+ ['CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'],
)
async def test_can_add_tiny_text(self):
@@ -60,9 +56,7 @@ async def test_can_create_table_if_not_exists(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
await blueprint.to_sql(),
- [
- 'CREATE TABLE IF NOT EXISTS "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'
- ],
+ ['CREATE TABLE IF NOT EXISTS "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL)'],
)
async def test_can_add_columns_with_constraint(self):
@@ -77,9 +71,7 @@ async def test_can_add_columns_with_constraint(self):
self.assertEqual(len(blueprint.table.added_columns), 2)
self.assertEqual(
await blueprint.to_sql(),
- [
- 'CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL, UNIQUE(name))'
- ],
+ ['CREATE TABLE "users" ("name" VARCHAR(255) NOT NULL, "age" INTEGER NOT NULL, UNIQUE(name))'],
)
async def test_can_have_float_type(self):
@@ -128,9 +120,7 @@ async def test_can_add_columns_with_foreign_key_constraint_name(self):
blueprint.string("name").unique()
blueprint.integer("age")
blueprint.integer("profile_id")
- blueprint.foreign("profile_id", name="profile_foreign").references("id").on(
- "profiles"
- )
+ blueprint.foreign("profile_id", name="profile_foreign").references("id").on("profiles")
self.assertEqual(len(blueprint.table.added_columns), 3)
self.assertEqual(
@@ -301,9 +291,7 @@ async def test_can_advanced_table_creation2(self):
blueprint.string("thumbnail").nullable()
blueprint.integer("premium")
blueprint.integer("author_id").unsigned().nullable()
- blueprint.foreign("author_id").references("id").on("users").on_delete(
- "set null"
- )
+ blueprint.foreign("author_id").references("id").on("users").on_delete("set null")
blueprint.text("description")
blueprint.timestamps()
@@ -326,9 +314,7 @@ async def test_has_table(self):
await self.schema.has_table("users")
sql, _ = mock_run.call_args[0]
- self.assertEqual(
- sql, "SELECT name FROM sqlite_master WHERE type='table' AND name='users'"
- )
+ self.assertEqual(sql, "SELECT name FROM sqlite_master WHERE type='table' AND name='users'")
async def test_can_truncate(self):
mock_statement = AsyncMock()
diff --git a/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder_alter.py b/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder_alter.py
index aea472a5..b1929d02 100644
--- a/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder_alter.py
+++ b/fastapi_startkit/tests/masoniteorm/sqlite/schema/test_sqlite_schema_builder_alter.py
@@ -171,9 +171,7 @@ async def test_alter_add_primary(self):
self.assertEqual(
await blueprint.to_sql(),
- [
- 'ALTER TABLE "users" ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)'
- ],
+ ['ALTER TABLE "users" ADD CONSTRAINT users_playlist_id_primary PRIMARY KEY (playlist_id)'],
)
async def test_alter_add_column_and_foreign_key(self):
@@ -186,9 +184,7 @@ async def test_alter_add_column_and_foreign_key(self):
async with await self.schema.table("users") as blueprint:
blueprint.unsigned_integer("playlist_id").nullable()
- blueprint.foreign("playlist_id").references("id").on("playlists").on_delete(
- "cascade"
- ).on_update("SET NULL")
+ blueprint.foreign("playlist_id").references("id").on("playlists").on_delete("cascade").on_update("SET NULL")
blueprint.table.from_table = table
self.assertEqual(
@@ -213,9 +209,7 @@ async def test_alter_add_foreign_key_only(self):
table.add_column("email", "string")
async with await self.schema.table("users") as blueprint:
- blueprint.foreign("playlist_id").references("id").on("playlists").on_delete(
- "cascade"
- ).on_update("set null")
+ blueprint.foreign("playlist_id").references("id").on("playlists").on_delete("cascade").on_update("set null")
blueprint.table.from_table = table
self.assertEqual(
diff --git a/fastapi_startkit/tests/storage/test_storage.py b/fastapi_startkit/tests/storage/test_storage.py
index 36755c61..95329178 100644
--- a/fastapi_startkit/tests/storage/test_storage.py
+++ b/fastapi_startkit/tests/storage/test_storage.py
@@ -2,6 +2,7 @@
from unittest.mock import MagicMock, patch
from fastapi_startkit.storage.storage import StorageManager, Storage
+
class TestStorage(unittest.TestCase):
def setUp(self):
self.mock_app = MagicMock()
@@ -18,13 +19,13 @@ def setUp(self):
"secret": "aws-secret",
"region": "us-east-1",
"bucket": "my-bucket",
- }
- }
+ },
+ },
}
self.storage_manager = StorageManager(self.mock_app).set_configuration(self.config)
self.mock_driver = MagicMock()
self.storage_manager.add_driver("local", self.mock_driver)
-
+
# Reset Storage singleton
Storage.instance = None
@@ -42,14 +43,14 @@ def test_disk_resolution(self):
def test_storage_proxy_methods(self, mock_app_getter):
mock_app_getter.return_value = self.mock_app
self.mock_app.make.return_value = self.storage_manager
-
+
# Mock disk() to return the mock driver
self.mock_driver.set_options.return_value = self.mock_driver
-
+
# Test proxying put
Storage.put("test.txt", "content")
self.mock_driver.put.assert_called_with("test.txt", "content")
-
+
# Test disk selection proxy
Storage.disk("local")
self.mock_driver.set_options.assert_called()
@@ -58,7 +59,7 @@ def test_storage_singleton_behavior(self):
with patch("fastapi_startkit.application.app") as mock_app_getter:
mock_app_getter.return_value = self.mock_app
self.mock_app.make.return_value = self.storage_manager
-
+
s1 = Storage.init()
s2 = Storage.init()
self.assertEqual(s1, s2)
@@ -67,10 +68,10 @@ def test_storage_singleton_behavior(self):
def test_local_driver_download(self):
from fastapi_startkit.storage.drivers.local import LocalDriver
from fastapi.responses import FileResponse
-
+
driver = LocalDriver(self.mock_app)
driver.set_options({"root": "/tmp"})
-
+
with patch("os.makedirs"):
response = driver.download("test.txt")
self.assertIsInstance(response, FileResponse)
@@ -79,15 +80,15 @@ def test_local_driver_download(self):
def test_s3_driver_download(self):
from fastapi_startkit.storage.drivers.s3 import S3Driver
from fastapi.responses import RedirectResponse
-
+
driver = S3Driver(self.mock_app)
driver.set_options({"bucket": "test-bucket", "key": "key", "secret": "secret"})
-
+
with patch.object(driver, "get_client") as mock_client_getter:
mock_client = MagicMock()
mock_client_getter.return_value = mock_client
mock_client.generate_presigned_url.return_value = "https://s3.url"
-
+
response = driver.download("test.txt")
self.assertIsInstance(response, RedirectResponse)
self.assertEqual(response.headers["location"], "https://s3.url")
@@ -96,14 +97,15 @@ def test_storage_fake(self):
with patch("fastapi_startkit.application.app") as mock_app_getter:
mock_app_getter.return_value = self.mock_app
self.mock_app.make.return_value = self.storage_manager
-
+
# Fake the 's3' disk
- Storage.fake('s3')
-
+ Storage.fake("s3")
+
# The driver for 's3' should now be a LocalDriver (the fake)
from fastapi_startkit.storage.drivers.local import LocalDriver
- driver = self.storage_manager.get_driver('s3')
+
+ driver = self.storage_manager.get_driver("s3")
self.assertIsInstance(driver, LocalDriver)
-
+
# Verify it uses a temporary directory
- self.assertIn('storage_fake_s3_', driver.options['root'])
+ self.assertIn("storage_fake_s3_", driver.options["root"])
diff --git a/fastapi_startkit/uv.lock b/fastapi_startkit/uv.lock
index dd3569e8..136f03af 100644
--- a/fastapi_startkit/uv.lock
+++ b/fastapi_startkit/uv.lock
@@ -443,7 +443,7 @@ wheels = [
[[package]]
name = "fastapi-startkit"
-version = "0.25.0"
+version = "0.26.0"
source = { editable = "." }
dependencies = [
{ name = "cleo" },
@@ -483,11 +483,16 @@ vite = [
[package.dev-dependencies]
dev = [
+ { name = "aiomysql" },
+ { name = "aiosqlite" },
+ { name = "asyncpg" },
{ name = "dumpdie" },
+ { name = "fastapi", extra = ["standard"] },
{ name = "itsdangerous" },
{ name = "pytest" },
{ name = "pytest-asyncio" },
{ name = "ruff" },
+ { name = "sqlalchemy", extra = ["asyncio"] },
{ name = "twine" },
]
@@ -515,11 +520,16 @@ provides-extras = ["fastapi", "database", "sqlite", "postgres", "mysql", "vite",
[package.metadata.requires-dev]
dev = [
+ { name = "aiomysql", specifier = ">=0.2.0" },
+ { name = "aiosqlite", specifier = ">=0.22.1" },
+ { name = "asyncpg", specifier = ">=0.29.0" },
{ name = "dumpdie", specifier = ">=1.5.0" },
+ { name = "fastapi", extras = ["standard"], specifier = ">=0.124.4" },
{ name = "itsdangerous", specifier = ">=2.2.0" },
{ name = "pytest", specifier = ">=9.0.3" },
{ name = "pytest-asyncio", specifier = ">=1.3.0" },
{ name = "ruff", specifier = ">=0.9.0" },
+ { name = "sqlalchemy", extras = ["asyncio"], specifier = ">=2.0.38" },
{ name = "twine", specifier = ">=6.2.0" },
]