mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-08-03 04:25:24 +02:00
feature/profile-cards (#391)
* unify format * pass variables * remove namespace * rename * group-card init * shuffle + icons * remove console.logs * token CRUD * update changelog * add profile link * consolidate mealplan to profile dashboard * update docs * add query parameter to search page * update test routes * update python depts * basic token tests Co-authored-by: hay-kot <hay-kot@pm.me>
This commit is contained in:
parent
f4384167f6
commit
95ec13161f
41 changed files with 977 additions and 449 deletions
32
tests/integration_tests/test_long_live_tokens.py
Normal file
32
tests/integration_tests/test_long_live_tokens.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
import json
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
from pytest import fixture
|
||||
from tests.app_routes import AppRoutes
|
||||
|
||||
|
||||
@fixture
|
||||
def long_live_token(api_client: TestClient, api_routes: AppRoutes, token):
|
||||
response = api_client.post(api_routes.users_api_tokens, json={"name": "Test Fixture Token"}, headers=token)
|
||||
assert response.status_code == 201
|
||||
|
||||
return {"Authorization": f"Bearer {json.loads(response.text).get('token')}"}
|
||||
|
||||
|
||||
def test_api_token_creation(api_client: TestClient, api_routes: AppRoutes, token):
|
||||
response = api_client.post(api_routes.users_api_tokens, json={"name": "Test API Token"}, headers=token)
|
||||
assert response.status_code == 201
|
||||
|
||||
|
||||
def test_use_token(api_client: TestClient, api_routes: AppRoutes, long_live_token):
|
||||
response = api_client.get(api_routes.users, headers=long_live_token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_delete_token(api_client: TestClient, api_routes: AppRoutes, token):
|
||||
response = api_client.delete(api_routes.users_api_tokens_token_id(1), headers=token)
|
||||
assert response.status_code == 200
|
||||
|
||||
response = api_client.delete(api_routes.users_api_tokens_token_id(2), headers=token)
|
||||
assert response.status_code == 200
|
|
@ -23,7 +23,7 @@ def chowdown_zip():
|
|||
|
||||
|
||||
def test_upload_chowdown_zip(api_client: TestClient, api_routes: AppRoutes, chowdown_zip: Path, token):
|
||||
upload_url = api_routes.migrations_source_upload("chowdown")
|
||||
upload_url = api_routes.migrations_import_type_upload("chowdown")
|
||||
response = api_client.post(upload_url, files={"archive": chowdown_zip.open("rb")}, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
@ -36,7 +36,7 @@ def test_import_chowdown_directory(api_client: TestClient, api_routes: AppRoutes
|
|||
api_client.delete(delete_url, headers=token) # TODO: Manage Test Data better
|
||||
selection = chowdown_zip.name
|
||||
|
||||
import_url = api_routes.migrations_source_file_name_import("chowdown", selection)
|
||||
import_url = api_routes.migrations_import_type_file_name_import("chowdown", selection)
|
||||
response = api_client.post(import_url, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
@ -49,7 +49,7 @@ def test_import_chowdown_directory(api_client: TestClient, api_routes: AppRoutes
|
|||
|
||||
def test_delete_chowdown_migration_data(api_client: TestClient, api_routes: AppRoutes, chowdown_zip: Path, token):
|
||||
selection = chowdown_zip.name
|
||||
delete_url = api_routes.migrations_source_file_name_delete("chowdown", selection)
|
||||
delete_url = api_routes.migrations_import_type_file_name_delete("chowdown", selection)
|
||||
response = api_client.delete(delete_url, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
@ -71,7 +71,7 @@ def nextcloud_zip():
|
|||
|
||||
|
||||
def test_upload_nextcloud_zip(api_client: TestClient, api_routes: AppRoutes, nextcloud_zip, token):
|
||||
upload_url = api_routes.migrations_source_upload("nextcloud")
|
||||
upload_url = api_routes.migrations_import_type_upload("nextcloud")
|
||||
response = api_client.post(upload_url, files={"archive": nextcloud_zip.open("rb")}, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
@ -81,7 +81,7 @@ def test_upload_nextcloud_zip(api_client: TestClient, api_routes: AppRoutes, nex
|
|||
|
||||
def test_import_nextcloud_directory(api_client: TestClient, api_routes: AppRoutes, nextcloud_zip, token):
|
||||
selection = nextcloud_zip.name
|
||||
import_url = api_routes.migrations_source_file_name_import("nextcloud", selection)
|
||||
import_url = api_routes.migrations_import_type_file_name_import("nextcloud", selection)
|
||||
response = api_client.post(import_url, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
@ -93,7 +93,7 @@ def test_import_nextcloud_directory(api_client: TestClient, api_routes: AppRoute
|
|||
|
||||
def test_delete__nextcloud_migration_data(api_client: TestClient, api_routes: AppRoutes, nextcloud_zip: Path, token):
|
||||
selection = nextcloud_zip.name
|
||||
delete_url = api_routes.migrations_source_file_name_delete("nextcloud", selection)
|
||||
delete_url = api_routes.migrations_import_type_file_name_delete("nextcloud", selection)
|
||||
response = api_client.delete(delete_url, headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
|
|
@ -55,7 +55,7 @@ def test_update_settings(api_client: TestClient, api_routes: AppRoutes, default_
|
|||
|
||||
|
||||
def test_default_theme(api_client: TestClient, api_routes: AppRoutes, default_theme):
|
||||
response = api_client.get(api_routes.themes_theme_name(1))
|
||||
response = api_client.get(api_routes.themes_id(1))
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.content) == default_theme
|
||||
|
||||
|
@ -65,7 +65,7 @@ def test_create_theme(api_client: TestClient, api_routes: AppRoutes, new_theme,
|
|||
response = api_client.post(api_routes.themes_create, json=new_theme, headers=token)
|
||||
assert response.status_code == 201
|
||||
|
||||
response = api_client.get(api_routes.themes_theme_name(new_theme.get("id")), headers=token)
|
||||
response = api_client.get(api_routes.themes_id(new_theme.get("id")), headers=token)
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.content) == new_theme
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_read_all_themes(api_client: TestClient, api_routes: AppRoutes, default_
|
|||
|
||||
def test_read_theme(api_client: TestClient, api_routes: AppRoutes, default_theme, new_theme):
|
||||
for theme in [default_theme, new_theme]:
|
||||
response = api_client.get(api_routes.themes_theme_name(theme.get("id")))
|
||||
response = api_client.get(api_routes.themes_id(theme.get("id")))
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.content) == theme
|
||||
|
||||
|
@ -97,14 +97,14 @@ def test_update_theme(api_client: TestClient, api_routes: AppRoutes, token, defa
|
|||
}
|
||||
|
||||
new_theme["colors"] = theme_colors
|
||||
response = api_client.put(api_routes.themes_theme_name(new_theme.get("id")), json=new_theme, headers=token)
|
||||
response = api_client.put(api_routes.themes_id(new_theme.get("id")), json=new_theme, headers=token)
|
||||
assert response.status_code == 200
|
||||
response = api_client.get(api_routes.themes_theme_name(new_theme.get("id")))
|
||||
response = api_client.get(api_routes.themes_id(new_theme.get("id")))
|
||||
assert json.loads(response.content) == new_theme
|
||||
|
||||
|
||||
def test_delete_theme(api_client: TestClient, api_routes: AppRoutes, default_theme, new_theme, token):
|
||||
for theme in [default_theme, new_theme]:
|
||||
response = api_client.delete(api_routes.themes_theme_name(theme.get("id")), headers=token)
|
||||
response = api_client.delete(api_routes.themes_id(theme.get("id")), headers=token)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
|
|
@ -10,12 +10,12 @@ from tests.app_routes import AppRoutes
|
|||
|
||||
@fixture(scope="session")
|
||||
def default_user():
|
||||
return UserOut(id=1, fullName="Change Me", email="changeme@email.com", group="Home", admin=True)
|
||||
return UserOut(id=1, fullName="Change Me", email="changeme@email.com", group="Home", admin=True, tokens=[])
|
||||
|
||||
|
||||
@fixture(scope="session")
|
||||
def new_user():
|
||||
return UserOut(id=3, fullName="My New User", email="newuser@email.com", group="Home", admin=False)
|
||||
return UserOut(id=3, fullName="My New User", email="newuser@email.com", group="Home", admin=False, tokens=[])
|
||||
|
||||
|
||||
def test_superuser_login(api_client: TestClient, api_routes: AppRoutes, token):
|
||||
|
@ -45,6 +45,7 @@ def test_create_user(api_client: TestClient, api_routes: AppRoutes, token, new_u
|
|||
"password": "MyStrongPassword",
|
||||
"group": "Home",
|
||||
"admin": False,
|
||||
"tokens": [],
|
||||
}
|
||||
|
||||
response = api_client.post(api_routes.users, json=create_data, headers=token)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue