A small flask restful framework
Project description
Installation
Usage
Api 開發
###初始化專案
flask admin start-project
依照後續指示建置基本專案
啟用 system app
flask admin start-system-app
此app包含基本用戶帳號,RBAC權限管理模組以及多國語言模組
啟用 task app
flask admin start-task-app
此app包含任務對列模組
新增 app
flask admin start-new-app
新增一個乾淨的app,會自動幫忙建置好app架構
資料庫遷移
第一次使用
flask db init
flask db migrate
flask db upgrade
此後
flask db migrate
flask db upgrade
對資料庫模型進行變動時,皆需要進行資料庫遷移來達成更新資料庫。
API test
Create Role Template
下指令
flask admin start-project
會同時把API測試的role template也建起來(建立一個tests資料夾)
設定檔說明
config/dev.yaml中,
變數說明:
- TEST_INIT_DB_ON_TEST:每次測試前是否要初始化資料庫資料
- TEST_EXECUTE_ALL_TEST:是否要執行所有測試(沒有要執行所有測試的話,需自行在manage.py中撰寫程式碼)
- TEST_ACCOUNT:設定各role的帳密
建立app底下的test
下指令
flask admin start-system-app
apps/system/tests/test.py為測試範例,可以參考
執行所有測試
在config/dev.yaml中,將TEST_EXECUTE_ALL_TEST設定為True,
下指令
python manage.py test
時,就會執行所有測試,這邊說明一下manage.py中的程式碼,
在test function中,app.config['TEST_EXECUTE_ALL_TEST']為True時,
會先去apps資料夾底下的每個app下面的tests/test.py中,將所有class抓出來,
讓這些class的metaclass都改成tests/meta_class的MetaClass,
為的是保證所有test case的function name都是唯一的(在function名後面加上module名以及class名的後綴),這樣才能保證都會執行到,
在這邊先稱這些class為app_test_classes, 接著,在test/roles底下,會抓出所有py檔的class,
所以有幾個role就請增加幾個「role名_test.py」,內容請參照superuser_test.py,
並且在config/dev.yaml中新增role的帳密 然後會將這些class都去繼承app_test_classes,讓所有role都去測所有test case。
這邊說明一下,role的class會去繼承tests/base.py的TestBase,
TestBase class繼承了flask_testing的TestCase,
所以必須override create_app function,此function必須回傳一個Flask instance,
並override setUp function(每個測試執行前會先執行setUp),
裡面包含了針對資料庫做資料的初始化(清空資料,insert初始資料),
並且獲取此role的帳密,call login API做登入的動作(獲取token),
tests/functions/sqls請放入資料庫的初始資料的insert sql。
執行單一測試
在config/dev.yaml中,將TEST_EXECUTE_ALL_TEST設定為False,
並且在manage.py裡,要將所需要測的role class以及app test class import進來,
並且讓role class去繼承app test class,最後single_test.addTest裡要加進去。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for flask_restful_helper-1.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2414534a27f95668dd651d2087a8575bb895fd1fc90513f35924adf61ed80d84 |
|
MD5 | 70eb4535f0ae94eedd67f2ddc724f0c7 |
|
BLAKE2b-256 | ccf9330a06690460e742eaa47b6fc8a7f249d654dc509bdf34dab2fd19eaf27f |