Skip to main content

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中,
變數說明:

  1. TEST_INIT_DB_ON_TEST:每次測試前是否要初始化資料庫資料
  2. TEST_EXECUTE_ALL_TEST:是否要執行所有測試(沒有要執行所有測試的話,需自行在manage.py中撰寫程式碼)
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

flask_restful_helper-1.3.10-py3-none-any.whl (41.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page