mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-08-03 04:25:24 +02:00
chore: file generation cleanup (#1736)
This PR does too many things :( 1. Major refactoring of the dev/scripts and dev/code-generation folders. Primarily this was removing duplicate code and cleaning up some poorly written code snippets as well as making them more idempotent so then can be re-run over and over again but still maintain the same results. This is working on my machine, but I've been having problems in CI and comparing diffs so running generators in CI will have to wait. 2. Re-Implement using the generated api routes for testing This was a _huge_ refactor that touched damn near every test file but now we have auto-generated typed routes with inline hints and it's used for nearly every test excluding a few that use classes for better parameterization. This should greatly reduce errors when writing new tests. 3. Minor Perf improvements for the All Recipes endpoint A. Removed redundant loops B. Uses orjson to do the encoding directly and returns a byte response instead of relying on the default jsonable_encoder. 4. Fix some TS type errors that cropped up for seemingly no reason half way through the PR. See this issue https://github.com/phillipdupuis/pydantic-to-typescript/issues/28 Basically, the generated TS type is not-correct since Pydantic will automatically fill in null fields. The resulting TS type is generated with a ? to indicate it can be null even though we _know_ that i can't be.
This commit is contained in:
parent
a8f0fb14a7
commit
9ecef4c25f
107 changed files with 2520 additions and 1948 deletions
|
@ -1,4 +1,3 @@
|
|||
from .app_routes import *
|
||||
from .assertion_helpers import *
|
||||
from .factories import *
|
||||
from .fixture_schemas import *
|
||||
|
|
399
tests/utils/api_routes/__init__.py
Normal file
399
tests/utils/api_routes/__init__.py
Normal file
|
@ -0,0 +1,399 @@
|
|||
# This Content is Auto Generated for Pytest
|
||||
prefix = "/api"
|
||||
|
||||
admin_about = "/api/admin/about"
|
||||
"""`/api/admin/about`"""
|
||||
admin_about_check = "/api/admin/about/check"
|
||||
"""`/api/admin/about/check`"""
|
||||
admin_about_docker_validate = "/api/admin/about/docker/validate"
|
||||
"""`/api/admin/about/docker/validate`"""
|
||||
admin_about_statistics = "/api/admin/about/statistics"
|
||||
"""`/api/admin/about/statistics`"""
|
||||
admin_analytics = "/api/admin/analytics"
|
||||
"""`/api/admin/analytics`"""
|
||||
admin_backups = "/api/admin/backups"
|
||||
"""`/api/admin/backups`"""
|
||||
admin_backups_upload = "/api/admin/backups/upload"
|
||||
"""`/api/admin/backups/upload`"""
|
||||
admin_email = "/api/admin/email"
|
||||
"""`/api/admin/email`"""
|
||||
admin_groups = "/api/admin/groups"
|
||||
"""`/api/admin/groups`"""
|
||||
admin_logs = "/api/admin/logs"
|
||||
"""`/api/admin/logs`"""
|
||||
admin_maintenance = "/api/admin/maintenance"
|
||||
"""`/api/admin/maintenance`"""
|
||||
admin_maintenance_clean_images = "/api/admin/maintenance/clean/images"
|
||||
"""`/api/admin/maintenance/clean/images`"""
|
||||
admin_maintenance_clean_logs = "/api/admin/maintenance/clean/logs"
|
||||
"""`/api/admin/maintenance/clean/logs`"""
|
||||
admin_maintenance_clean_recipe_folders = "/api/admin/maintenance/clean/recipe-folders"
|
||||
"""`/api/admin/maintenance/clean/recipe-folders`"""
|
||||
admin_maintenance_clean_temp = "/api/admin/maintenance/clean/temp"
|
||||
"""`/api/admin/maintenance/clean/temp`"""
|
||||
admin_maintenance_logs = "/api/admin/maintenance/logs"
|
||||
"""`/api/admin/maintenance/logs`"""
|
||||
admin_maintenance_storage = "/api/admin/maintenance/storage"
|
||||
"""`/api/admin/maintenance/storage`"""
|
||||
admin_server_tasks = "/api/admin/server-tasks"
|
||||
"""`/api/admin/server-tasks`"""
|
||||
admin_users = "/api/admin/users"
|
||||
"""`/api/admin/users`"""
|
||||
admin_users_unlock = "/api/admin/users/unlock"
|
||||
"""`/api/admin/users/unlock`"""
|
||||
app_about = "/api/app/about"
|
||||
"""`/api/app/about`"""
|
||||
auth_refresh = "/api/auth/refresh"
|
||||
"""`/api/auth/refresh`"""
|
||||
auth_token = "/api/auth/token"
|
||||
"""`/api/auth/token`"""
|
||||
comments = "/api/comments"
|
||||
"""`/api/comments`"""
|
||||
foods = "/api/foods"
|
||||
"""`/api/foods`"""
|
||||
foods_merge = "/api/foods/merge"
|
||||
"""`/api/foods/merge`"""
|
||||
groups_categories = "/api/groups/categories"
|
||||
"""`/api/groups/categories`"""
|
||||
groups_cookbooks = "/api/groups/cookbooks"
|
||||
"""`/api/groups/cookbooks`"""
|
||||
groups_events_notifications = "/api/groups/events/notifications"
|
||||
"""`/api/groups/events/notifications`"""
|
||||
groups_invitations = "/api/groups/invitations"
|
||||
"""`/api/groups/invitations`"""
|
||||
groups_invitations_email = "/api/groups/invitations/email"
|
||||
"""`/api/groups/invitations/email`"""
|
||||
groups_labels = "/api/groups/labels"
|
||||
"""`/api/groups/labels`"""
|
||||
groups_mealplans = "/api/groups/mealplans"
|
||||
"""`/api/groups/mealplans`"""
|
||||
groups_mealplans_random = "/api/groups/mealplans/random"
|
||||
"""`/api/groups/mealplans/random`"""
|
||||
groups_mealplans_rules = "/api/groups/mealplans/rules"
|
||||
"""`/api/groups/mealplans/rules`"""
|
||||
groups_mealplans_today = "/api/groups/mealplans/today"
|
||||
"""`/api/groups/mealplans/today`"""
|
||||
groups_members = "/api/groups/members"
|
||||
"""`/api/groups/members`"""
|
||||
groups_migrations = "/api/groups/migrations"
|
||||
"""`/api/groups/migrations`"""
|
||||
groups_permissions = "/api/groups/permissions"
|
||||
"""`/api/groups/permissions`"""
|
||||
groups_preferences = "/api/groups/preferences"
|
||||
"""`/api/groups/preferences`"""
|
||||
groups_reports = "/api/groups/reports"
|
||||
"""`/api/groups/reports`"""
|
||||
groups_seeders_foods = "/api/groups/seeders/foods"
|
||||
"""`/api/groups/seeders/foods`"""
|
||||
groups_seeders_labels = "/api/groups/seeders/labels"
|
||||
"""`/api/groups/seeders/labels`"""
|
||||
groups_seeders_units = "/api/groups/seeders/units"
|
||||
"""`/api/groups/seeders/units`"""
|
||||
groups_self = "/api/groups/self"
|
||||
"""`/api/groups/self`"""
|
||||
groups_shopping_items = "/api/groups/shopping/items"
|
||||
"""`/api/groups/shopping/items`"""
|
||||
groups_shopping_lists = "/api/groups/shopping/lists"
|
||||
"""`/api/groups/shopping/lists`"""
|
||||
groups_statistics = "/api/groups/statistics"
|
||||
"""`/api/groups/statistics`"""
|
||||
groups_storage = "/api/groups/storage"
|
||||
"""`/api/groups/storage`"""
|
||||
groups_webhooks = "/api/groups/webhooks"
|
||||
"""`/api/groups/webhooks`"""
|
||||
groups_webhooks_rerun = "/api/groups/webhooks/rerun"
|
||||
"""`/api/groups/webhooks/rerun`"""
|
||||
media_docker_validate_txt = "/api/media/docker/validate.txt"
|
||||
"""`/api/media/docker/validate.txt`"""
|
||||
ocr = "/api/ocr/"
|
||||
"""`/api/ocr/`"""
|
||||
ocr_asset_to_tsv = "/api/ocr/asset-to-tsv"
|
||||
"""`/api/ocr/asset-to-tsv`"""
|
||||
ocr_file_to_tsv = "/api/ocr/file-to-tsv"
|
||||
"""`/api/ocr/file-to-tsv`"""
|
||||
organizers_categories = "/api/organizers/categories"
|
||||
"""`/api/organizers/categories`"""
|
||||
organizers_categories_empty = "/api/organizers/categories/empty"
|
||||
"""`/api/organizers/categories/empty`"""
|
||||
organizers_tags = "/api/organizers/tags"
|
||||
"""`/api/organizers/tags`"""
|
||||
organizers_tags_empty = "/api/organizers/tags/empty"
|
||||
"""`/api/organizers/tags/empty`"""
|
||||
organizers_tools = "/api/organizers/tools"
|
||||
"""`/api/organizers/tools`"""
|
||||
parser_ingredient = "/api/parser/ingredient"
|
||||
"""`/api/parser/ingredient`"""
|
||||
parser_ingredients = "/api/parser/ingredients"
|
||||
"""`/api/parser/ingredients`"""
|
||||
recipes = "/api/recipes"
|
||||
"""`/api/recipes`"""
|
||||
recipes_bulk_actions_categorize = "/api/recipes/bulk-actions/categorize"
|
||||
"""`/api/recipes/bulk-actions/categorize`"""
|
||||
recipes_bulk_actions_delete = "/api/recipes/bulk-actions/delete"
|
||||
"""`/api/recipes/bulk-actions/delete`"""
|
||||
recipes_bulk_actions_export = "/api/recipes/bulk-actions/export"
|
||||
"""`/api/recipes/bulk-actions/export`"""
|
||||
recipes_bulk_actions_export_download = "/api/recipes/bulk-actions/export/download"
|
||||
"""`/api/recipes/bulk-actions/export/download`"""
|
||||
recipes_bulk_actions_export_purge = "/api/recipes/bulk-actions/export/purge"
|
||||
"""`/api/recipes/bulk-actions/export/purge`"""
|
||||
recipes_bulk_actions_settings = "/api/recipes/bulk-actions/settings"
|
||||
"""`/api/recipes/bulk-actions/settings`"""
|
||||
recipes_bulk_actions_tag = "/api/recipes/bulk-actions/tag"
|
||||
"""`/api/recipes/bulk-actions/tag`"""
|
||||
recipes_create_from_zip = "/api/recipes/create-from-zip"
|
||||
"""`/api/recipes/create-from-zip`"""
|
||||
recipes_create_ocr = "/api/recipes/create-ocr"
|
||||
"""`/api/recipes/create-ocr`"""
|
||||
recipes_create_url = "/api/recipes/create-url"
|
||||
"""`/api/recipes/create-url`"""
|
||||
recipes_create_url_bulk = "/api/recipes/create-url/bulk"
|
||||
"""`/api/recipes/create-url/bulk`"""
|
||||
recipes_exports = "/api/recipes/exports"
|
||||
"""`/api/recipes/exports`"""
|
||||
recipes_summary_uncategorized = "/api/recipes/summary/uncategorized"
|
||||
"""`/api/recipes/summary/uncategorized`"""
|
||||
recipes_summary_untagged = "/api/recipes/summary/untagged"
|
||||
"""`/api/recipes/summary/untagged`"""
|
||||
recipes_test_scrape_url = "/api/recipes/test-scrape-url"
|
||||
"""`/api/recipes/test-scrape-url`"""
|
||||
shared_recipes = "/api/shared/recipes"
|
||||
"""`/api/shared/recipes`"""
|
||||
units = "/api/units"
|
||||
"""`/api/units`"""
|
||||
units_merge = "/api/units/merge"
|
||||
"""`/api/units/merge`"""
|
||||
users = "/api/users"
|
||||
"""`/api/users`"""
|
||||
users_api_tokens = "/api/users/api-tokens"
|
||||
"""`/api/users/api-tokens`"""
|
||||
users_forgot_password = "/api/users/forgot-password"
|
||||
"""`/api/users/forgot-password`"""
|
||||
users_password = "/api/users/password"
|
||||
"""`/api/users/password`"""
|
||||
users_register = "/api/users/register"
|
||||
"""`/api/users/register`"""
|
||||
users_reset_password = "/api/users/reset-password"
|
||||
"""`/api/users/reset-password`"""
|
||||
users_self = "/api/users/self"
|
||||
"""`/api/users/self`"""
|
||||
utils_download = "/api/utils/download"
|
||||
"""`/api/utils/download`"""
|
||||
validators_group = "/api/validators/group"
|
||||
"""`/api/validators/group`"""
|
||||
validators_recipe = "/api/validators/recipe"
|
||||
"""`/api/validators/recipe`"""
|
||||
validators_user_email = "/api/validators/user/email"
|
||||
"""`/api/validators/user/email`"""
|
||||
validators_user_name = "/api/validators/user/name"
|
||||
"""`/api/validators/user/name`"""
|
||||
|
||||
|
||||
def admin_backups_file_name(file_name):
|
||||
"""`/api/admin/backups/{file_name}`"""
|
||||
return f"{prefix}/admin/backups/{file_name}"
|
||||
|
||||
|
||||
def admin_backups_file_name_restore(file_name):
|
||||
"""`/api/admin/backups/{file_name}/restore`"""
|
||||
return f"{prefix}/admin/backups/{file_name}/restore"
|
||||
|
||||
|
||||
def admin_groups_item_id(item_id):
|
||||
"""`/api/admin/groups/{item_id}`"""
|
||||
return f"{prefix}/admin/groups/{item_id}"
|
||||
|
||||
|
||||
def admin_logs_num(num):
|
||||
"""`/api/admin/logs/{num}`"""
|
||||
return f"{prefix}/admin/logs/{num}"
|
||||
|
||||
|
||||
def admin_users_item_id(item_id):
|
||||
"""`/api/admin/users/{item_id}`"""
|
||||
return f"{prefix}/admin/users/{item_id}"
|
||||
|
||||
|
||||
def comments_item_id(item_id):
|
||||
"""`/api/comments/{item_id}`"""
|
||||
return f"{prefix}/comments/{item_id}"
|
||||
|
||||
|
||||
def explore_recipes_group_id_recipe_slug(group_id, recipe_slug):
|
||||
"""`/api/explore/recipes/{group_id}/{recipe_slug}`"""
|
||||
return f"{prefix}/explore/recipes/{group_id}/{recipe_slug}"
|
||||
|
||||
|
||||
def foods_item_id(item_id):
|
||||
"""`/api/foods/{item_id}`"""
|
||||
return f"{prefix}/foods/{item_id}"
|
||||
|
||||
|
||||
def groups_cookbooks_item_id(item_id):
|
||||
"""`/api/groups/cookbooks/{item_id}`"""
|
||||
return f"{prefix}/groups/cookbooks/{item_id}"
|
||||
|
||||
|
||||
def groups_events_notifications_item_id(item_id):
|
||||
"""`/api/groups/events/notifications/{item_id}`"""
|
||||
return f"{prefix}/groups/events/notifications/{item_id}"
|
||||
|
||||
|
||||
def groups_events_notifications_item_id_test(item_id):
|
||||
"""`/api/groups/events/notifications/{item_id}/test`"""
|
||||
return f"{prefix}/groups/events/notifications/{item_id}/test"
|
||||
|
||||
|
||||
def groups_labels_item_id(item_id):
|
||||
"""`/api/groups/labels/{item_id}`"""
|
||||
return f"{prefix}/groups/labels/{item_id}"
|
||||
|
||||
|
||||
def groups_mealplans_item_id(item_id):
|
||||
"""`/api/groups/mealplans/{item_id}`"""
|
||||
return f"{prefix}/groups/mealplans/{item_id}"
|
||||
|
||||
|
||||
def groups_mealplans_rules_item_id(item_id):
|
||||
"""`/api/groups/mealplans/rules/{item_id}`"""
|
||||
return f"{prefix}/groups/mealplans/rules/{item_id}"
|
||||
|
||||
|
||||
def groups_reports_item_id(item_id):
|
||||
"""`/api/groups/reports/{item_id}`"""
|
||||
return f"{prefix}/groups/reports/{item_id}"
|
||||
|
||||
|
||||
def groups_shopping_items_item_id(item_id):
|
||||
"""`/api/groups/shopping/items/{item_id}`"""
|
||||
return f"{prefix}/groups/shopping/items/{item_id}"
|
||||
|
||||
|
||||
def groups_shopping_lists_item_id(item_id):
|
||||
"""`/api/groups/shopping/lists/{item_id}`"""
|
||||
return f"{prefix}/groups/shopping/lists/{item_id}"
|
||||
|
||||
|
||||
def groups_shopping_lists_item_id_recipe_recipe_id(item_id, recipe_id):
|
||||
"""`/api/groups/shopping/lists/{item_id}/recipe/{recipe_id}`"""
|
||||
return f"{prefix}/groups/shopping/lists/{item_id}/recipe/{recipe_id}"
|
||||
|
||||
|
||||
def groups_webhooks_item_id(item_id):
|
||||
"""`/api/groups/webhooks/{item_id}`"""
|
||||
return f"{prefix}/groups/webhooks/{item_id}"
|
||||
|
||||
|
||||
def media_recipes_recipe_id_assets_file_name(recipe_id, file_name):
|
||||
"""`/api/media/recipes/{recipe_id}/assets/{file_name}`"""
|
||||
return f"{prefix}/media/recipes/{recipe_id}/assets/{file_name}"
|
||||
|
||||
|
||||
def media_recipes_recipe_id_images_file_name(recipe_id, file_name):
|
||||
"""`/api/media/recipes/{recipe_id}/images/{file_name}`"""
|
||||
return f"{prefix}/media/recipes/{recipe_id}/images/{file_name}"
|
||||
|
||||
|
||||
def media_users_user_id_file_name(user_id, file_name):
|
||||
"""`/api/media/users/{user_id}/{file_name}`"""
|
||||
return f"{prefix}/media/users/{user_id}/{file_name}"
|
||||
|
||||
|
||||
def organizers_categories_item_id(item_id):
|
||||
"""`/api/organizers/categories/{item_id}`"""
|
||||
return f"{prefix}/organizers/categories/{item_id}"
|
||||
|
||||
|
||||
def organizers_categories_slug_category_slug(category_slug):
|
||||
"""`/api/organizers/categories/slug/{category_slug}`"""
|
||||
return f"{prefix}/organizers/categories/slug/{category_slug}"
|
||||
|
||||
|
||||
def organizers_tags_item_id(item_id):
|
||||
"""`/api/organizers/tags/{item_id}`"""
|
||||
return f"{prefix}/organizers/tags/{item_id}"
|
||||
|
||||
|
||||
def organizers_tags_slug_tag_slug(tag_slug):
|
||||
"""`/api/organizers/tags/slug/{tag_slug}`"""
|
||||
return f"{prefix}/organizers/tags/slug/{tag_slug}"
|
||||
|
||||
|
||||
def organizers_tools_item_id(item_id):
|
||||
"""`/api/organizers/tools/{item_id}`"""
|
||||
return f"{prefix}/organizers/tools/{item_id}"
|
||||
|
||||
|
||||
def organizers_tools_slug_tool_slug(tool_slug):
|
||||
"""`/api/organizers/tools/slug/{tool_slug}`"""
|
||||
return f"{prefix}/organizers/tools/slug/{tool_slug}"
|
||||
|
||||
|
||||
def recipes_shared_token_id(token_id):
|
||||
"""`/api/recipes/shared/{token_id}`"""
|
||||
return f"{prefix}/recipes/shared/{token_id}"
|
||||
|
||||
|
||||
def recipes_slug(slug):
|
||||
"""`/api/recipes/{slug}`"""
|
||||
return f"{prefix}/recipes/{slug}"
|
||||
|
||||
|
||||
def recipes_slug_assets(slug):
|
||||
"""`/api/recipes/{slug}/assets`"""
|
||||
return f"{prefix}/recipes/{slug}/assets"
|
||||
|
||||
|
||||
def recipes_slug_comments(slug):
|
||||
"""`/api/recipes/{slug}/comments`"""
|
||||
return f"{prefix}/recipes/{slug}/comments"
|
||||
|
||||
|
||||
def recipes_slug_exports(slug):
|
||||
"""`/api/recipes/{slug}/exports`"""
|
||||
return f"{prefix}/recipes/{slug}/exports"
|
||||
|
||||
|
||||
def recipes_slug_exports_zip(slug):
|
||||
"""`/api/recipes/{slug}/exports/zip`"""
|
||||
return f"{prefix}/recipes/{slug}/exports/zip"
|
||||
|
||||
|
||||
def recipes_slug_image(slug):
|
||||
"""`/api/recipes/{slug}/image`"""
|
||||
return f"{prefix}/recipes/{slug}/image"
|
||||
|
||||
|
||||
def shared_recipes_item_id(item_id):
|
||||
"""`/api/shared/recipes/{item_id}`"""
|
||||
return f"{prefix}/shared/recipes/{item_id}"
|
||||
|
||||
|
||||
def units_item_id(item_id):
|
||||
"""`/api/units/{item_id}`"""
|
||||
return f"{prefix}/units/{item_id}"
|
||||
|
||||
|
||||
def users_api_tokens_token_id(token_id):
|
||||
"""`/api/users/api-tokens/{token_id}`"""
|
||||
return f"{prefix}/users/api-tokens/{token_id}"
|
||||
|
||||
|
||||
def users_id_favorites(id):
|
||||
"""`/api/users/{id}/favorites`"""
|
||||
return f"{prefix}/users/{id}/favorites"
|
||||
|
||||
|
||||
def users_id_favorites_slug(id, slug):
|
||||
"""`/api/users/{id}/favorites/{slug}`"""
|
||||
return f"{prefix}/users/{id}/favorites/{slug}"
|
||||
|
||||
|
||||
def users_id_image(id):
|
||||
"""`/api/users/{id}/image`"""
|
||||
return f"{prefix}/users/{id}/image"
|
||||
|
||||
|
||||
def users_item_id(item_id):
|
||||
"""`/api/users/{item_id}`"""
|
||||
return f"{prefix}/users/{item_id}"
|
|
@ -1,123 +0,0 @@
|
|||
class AppRoutes:
|
||||
def __init__(self) -> None:
|
||||
self.prefix = "/api"
|
||||
|
||||
self.auth_token = "/api/auth/token"
|
||||
self.auth_token_long = "/api/auth/token/long"
|
||||
self.auth_refresh = "/api/auth/refresh"
|
||||
self.users_sign_ups = "/api/users/sign-ups"
|
||||
self.users = "/api/users"
|
||||
self.users_self = "/api/users/self"
|
||||
self.users_api_tokens = "/api/users/api-tokens"
|
||||
self.groups = "/api/groups"
|
||||
self.groups_self = "/api/groups/self"
|
||||
self.recipes_summary = "/api/recipes/summary"
|
||||
self.recipes_summary_untagged = "/api/recipes/summary/untagged"
|
||||
self.recipes_summary_uncategorized = "/api/recipes/summary/uncategorized"
|
||||
self.recipes_category = "/api/recipes/category"
|
||||
self.recipes_tag = "/api/recipes/tag"
|
||||
self.recipes_create = "/api/recipes/create"
|
||||
self.recipes_create_url = "/api/recipes/create-url"
|
||||
self.categories = "/api/categories"
|
||||
self.categories_empty = "/api/categories/empty"
|
||||
self.tags = "/api/tags"
|
||||
self.tags_empty = "/api/tags/empty"
|
||||
self.about_events = "/api/about/events"
|
||||
self.meal_plans_all = "/api/meal-plans/all"
|
||||
self.meal_plans_create = "/api/meal-plans/create"
|
||||
self.meal_plans_this_week = "/api/meal-plans/this-week"
|
||||
self.meal_plans_today = "/api/meal-plans/today"
|
||||
self.meal_plans_today_image = "/api/meal-plans/today/image"
|
||||
self.group_cookbook = "/api/groups/cookbooks"
|
||||
self.site_settings = "/api/site-settings"
|
||||
self.site_settings_webhooks_test = "/api/site-settings/webhooks/test"
|
||||
self.themes = "/api/themes"
|
||||
self.themes_create = "/api/themes/create"
|
||||
self.backups_available = "/api/backups/available"
|
||||
self.backups_export_database = "/api/backups/export/database"
|
||||
self.backups_upload = "/api/backups/upload"
|
||||
self.migrations = "/api/migrations"
|
||||
self.debug = "/api/debug"
|
||||
self.debug_statistics = "/api/debug/statistics"
|
||||
self.debug_version = "/api/debug/version"
|
||||
self.debug_last_recipe_json = "/api/debug/last-recipe-json"
|
||||
self.debug_log = "/api/debug/log"
|
||||
self.utils_download = "/api/utils/download"
|
||||
|
||||
def users_sign_ups_token(self, token):
|
||||
return f"{self.prefix}/users/sign-ups/{token}"
|
||||
|
||||
def users_id(self, id):
|
||||
return f"{self.prefix}/users/{id}"
|
||||
|
||||
def users_id_reset_password(self, id):
|
||||
return f"{self.prefix}/users/{id}/reset-password"
|
||||
|
||||
def users_id_image(self, id):
|
||||
return f"{self.prefix}/users/{id}/image"
|
||||
|
||||
def users_id_password(self, id):
|
||||
return f"{self.prefix}/users/{id}/password"
|
||||
|
||||
def users_api_tokens_token_id(self, token_id):
|
||||
return f"{self.prefix}/users/api-tokens/{token_id}"
|
||||
|
||||
def groups_id(self, id):
|
||||
return f"{self.prefix}/groups/{id}"
|
||||
|
||||
def recipes_recipe_slug(self, recipe_slug):
|
||||
return f"{self.prefix}/recipes/{recipe_slug}"
|
||||
|
||||
def recipes_recipe_slug_image(self, recipe_slug):
|
||||
return f"{self.prefix}/recipes/{recipe_slug}/image"
|
||||
|
||||
def recipes_recipe_slug_assets(self, recipe_slug):
|
||||
return f"{self.prefix}/recipes/{recipe_slug}/assets"
|
||||
|
||||
def categories_category(self, category):
|
||||
return f"{self.prefix}/categories/{category}"
|
||||
|
||||
def tags_tag(self, tag):
|
||||
return f"{self.prefix}/tags/{tag}"
|
||||
|
||||
def media_recipes_recipe_slug_images_file_name(self, recipe_slug, file_name):
|
||||
return f"{self.prefix}/media/recipes/{recipe_slug}/images/{file_name}"
|
||||
|
||||
def media_recipes_recipe_slug_assets_file_name(self, recipe_slug, file_name):
|
||||
return f"{self.prefix}/media/recipes/{recipe_slug}/assets/{file_name}"
|
||||
|
||||
def about_events_id(self, id):
|
||||
return f"{self.prefix}/about/events/{id}"
|
||||
|
||||
def meal_plans_plan_id(self, plan_id):
|
||||
return f"{self.prefix}/meal-plans/{plan_id}"
|
||||
|
||||
def meal_plans_id_shopping_list(self, id):
|
||||
return f"{self.prefix}/meal-plans/{id}/shopping-list"
|
||||
|
||||
def group_cookbook_id(self, id):
|
||||
return f"{self.prefix}/groups/cookbooks/{id}"
|
||||
|
||||
def themes_id(self, id):
|
||||
return f"{self.prefix}/themes/{id}"
|
||||
|
||||
def backups_file_name_download(self, file_name):
|
||||
return f"{self.prefix}/backups/{file_name}/download"
|
||||
|
||||
def backups_file_name_import(self, file_name):
|
||||
return f"{self.prefix}/backups/{file_name}/import"
|
||||
|
||||
def backups_file_name_delete(self, file_name):
|
||||
return f"{self.prefix}/backups/{file_name}/delete"
|
||||
|
||||
def migrations_import_type_file_name_import(self, import_type, file_name):
|
||||
return f"{self.prefix}/migrations/{import_type}/{file_name}/import"
|
||||
|
||||
def migrations_import_type_file_name_delete(self, import_type, file_name):
|
||||
return f"{self.prefix}/migrations/{import_type}/{file_name}/delete"
|
||||
|
||||
def migrations_import_type_upload(self, import_type):
|
||||
return f"{self.prefix}/migrations/{import_type}/upload"
|
||||
|
||||
def debug_log_num(self, num):
|
||||
return f"{self.prefix}/debug/log/{num}"
|
|
@ -2,10 +2,10 @@ import json
|
|||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from .app_routes import AppRoutes
|
||||
from tests.utils import api_routes
|
||||
|
||||
|
||||
def login(form_data, api_client: TestClient, api_routes: AppRoutes):
|
||||
def login(form_data, api_client: TestClient):
|
||||
response = api_client.post(api_routes.auth_token, form_data)
|
||||
assert response.status_code == 200
|
||||
token = json.loads(response.text).get("access_token")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue