-
Entity (WorkflowGQLModel, WorkflowStateGQLModel, WorkflowTransitionGQLModel)
-
Entity (WorkflowStateUserGQLModel, WorkflowStateRoleGQLModel)
-
Modely v databázi pomocí SQLAlchemy, API endpoint typu GraphQL s pomocí knihovny Strawberry.
-
Přístup k databázi řešte důsledně přes AioDataloder, resp. (https://github.com/hrbolek/uoishelpers/blob/main/uoishelpers/dataloaders.py).
-
Zabezpečte kompletní CRUD operace nad entitami Modelu
-
CUD operace jako návratový typ nejméně se třemi prvky id, msg a „entityresult“ (pojmenujte adekvátně podle dotčené entity), vhodné přidat možnost nadřízené entity, speciálně pro operaci D.
-
Řešte autorizaci operací (permission classes).
-
Kompletní CRUD dotazy na GQL v souboru externalids_queries.json (dictionary), jméno klíče nechť vhodně identifikuje operaci, hodnota je dictionary s klíči query (obsahuje parametrický dotaz) nebo mutation (obsahuje parametrické mutation) a variables (obsahuje dictionary jako testovací hodnoty).
-
Kompletní popisy API v kódu (description u GQLModelů) a popisy DB vrstvy (comment u DBModelů).
-
Zabezpečte více jak 90% code test coverage (standard pytest).
- 16.10. - příprava na 1. projektový den, vytvořený GitHub repository, zprovozněný Docker
- 23.10. - 26.11. - bližší seznámení s projektem, porozuměmní technikám, příprava na 2. projektový den, příprava RU operací
- 27.11. - prezentace postupu na 2. projektovém dnu
- 27.11. - 8.12. - implementace CRU operací
- 10.12. - začatek testování
- 11.12. - 13.12. - oprava chyb, testování
- 5.1 - 10.1 - permission classes
- 11.1 - 20.1 - finalizace, testování, oprava chyb
pytest --cov-report term-missing --cov=DBDefinitions --cov=GraphTypeDefinitions --cov=utils --log-cli-level=INFO -x
pytest --cov-report term-missing --cov=DBDefinitions --cov=GraphTypeDefinitions --cov=utils --log-cli-level=INFO -x tests
DEMO=True
DEMOUSER={"id": "2d9dc5ca-a4a2-11ed-b9df-0242ac120003", "name": "John", "surname": "Newbie"}
JWTPUBLICKEY=http://localhost:8000/oauth/publickey
JWTRESOLVEUSERPATH=http://localhost:8000/oauth/userinfo
GQLUG_ENDPOINT_URL=http://localhost:8000/gql
uvicorn main:app --env-file environment.txt --port 8000 --reload
---------- coverage: platform win32, python 3.10.10-final-0 ----------
Name Stmts Miss Cover Missing
-------------------------------------------------------------------------------------
DBDefinitions\AuthorizationGroupModel.py 15 0 100%
DBDefinitions\AuthorizationModel.py 8 0 100%
DBDefinitions\AuthorizationRoleTypeModel.py 16 0 100%
DBDefinitions\AuthorizationUserModel.py 15 0 100%
DBDefinitions\Base.py 2 0 100%
DBDefinitions\WorkflowModel.py 17 0 100%
DBDefinitions\WorkflowStateModel.py 17 0 100%
DBDefinitions\WorkflowStateRoleTypeModel.py 18 0 100%
DBDefinitions\WorkflowStateUserModel.py 19 0 100%
DBDefinitions\WorkflowTransitionModel.py 19 0 100%
DBDefinitions\__init__.py 36 1 97% 36
DBDefinitions\uuid.py 9 0 100%
GraphTypeDefinitions\BaseGQLModel.py 14 0 100%
GraphTypeDefinitions\_GraphPermissions.py 88 48 45% 150-164, 174-177, 197-198, 219-287
GraphTypeDefinitions\_GraphResolvers.py 77 3 96% 298-300
GraphTypeDefinitions\__init__.py 55 0 100%
GraphTypeDefinitions\authorizationGQLModel.py 0 0 100%
GraphTypeDefinitions\authorizationGroupGQLModel.py 0 0 100%
GraphTypeDefinitions\authorizationRoleTypeGQLModel.py 0 0 100%
GraphTypeDefinitions\authorizationUserGQLModel.py 0 0 100%
GraphTypeDefinitions\externals.py 25 0 100%
GraphTypeDefinitions\utils.py 0 0 100%
GraphTypeDefinitions\workflowGQLModel.py 85 0 100%
GraphTypeDefinitions\workflowStateGQLModel.py 111 0 100%
GraphTypeDefinitions\workflowStateRoleTypeGQLModel.py 80 0 100%
GraphTypeDefinitions\workflowStateUserGQLModel.py 80 0 100%
GraphTypeDefinitions\workflowTransitionGQLModel.py 114 2 98% 240-241
utils\DBFeeder.py 37 0 100%
utils\Dataloaders.py 129 12 91% 69, 83-102
utils\__init__.py 0 0 100%
utils\gql_ug_proxy.py 29 0 100%
utils\sentinel.py 8 0 100%
-------------------------------------------------------------------------------------
TOTAL 1123 66 94%