# -*- coding: utf-8 -*- import pytest import decimal from urllib.parse import urljoin from datetime import date, datetime from domainics.domobj import DSet, DObject, dset, dobject, datt from domainics.tornice import rest, route_base from domainics.tornice.client import rest_client, restcli route_base('sys/') class A(dobject): sn = datt(str) name = datt(str) AA = A._re(_key=['sn']) @rest.GET(r'abc/{sn:int}/{path:path}') def hello(sn: int, name, val: float, d1: datetime, path: str, obj: DSet[AA]): print(8888, sn, path, name) print(8888, val, d1, obj) return sn @rest_client def test_hi(app_url):
# -*- coding: utf-8 -*- from datetime import datetime from domainics.db import dbc, transaction, dmerge, drecall from domainics.tornice import route_base, rest, webreq from domainics import busilogic from domainics.domobj import dset, dobject, datt, DSet, DPage from schema.user import sys_user, sys_user_seqno route_base('/api/sys/') @transaction def current_user(): user_sn = webreq.principal_id print(user_sn) user = get_user(user_sn) if user: return user busilogic.unauthorized() def assert_roles(*roles): user = current_user() print(user, user.sys_roles, roles) for role in roles: if role in user.sys_roles: return True busilogic.forbidden("需要角色: " + ', '.join(roles))
# -*- coding: utf-8 -*- import pytest import decimal from urllib.parse import urljoin from datetime import date, datetime from domainics.domobj import DPage, DSet, dobject, datt, dset from domainics.db import dtable from domainics.tornice import rest, route_base from domainics.tornice.client import rest_client, restcli from domainics.domobj.pagination import parse_header_range route_base('/tests/') class test_a(dtable): sn = datt(int) line = datt(int) name = datt(str) __dobject_key__ = [sn, line] @rest.GET(r'case1/') def case1(page: DPage) : print('paginaton: ', page) assert len(page.sortable) == 2 assert page.start == 0 and page.limit == 25 assert page.sortable[0].name == 'sn' and page.sortable[0].ascending
# -*- coding: utf-8 -*- from domainics.tornice import route_base route_base('/api-test/v1/')
# -*- coding: utf-8 -*- import re import json from datetime import datetime from domainics.db import dbc, transaction, dmerge, drecall from domainics.tornice import route_base, rest, webreq from domainics import busilogic from domainics.domobj import dset, dobject, datt, DSet, DPage route_base('/api/quest/') from schema.quest import ts_quest, ts_quest_seqno from schema.quest import ts_quest_labels from schema.quest import ts_quest_saveforlater from schema.quest import ts_quest_trashed from serv.label import find_labels, ts_label from serv.quest import to_list_json @rest.GET('/api/repos/{repos_sn:int}/trashed') @transaction def get_trashed_questions(repos_sn: int): dbc << """ SELECT q.*, s.updated_ts AS saveforlater_updated_ts, t.labels AS tags, t.updated_ts AS tag_updated_ts, c.labels AS categories, c.updated_ts AS cat_updated_ts
# -*- coding: utf-8 -*- import re from datetime import datetime from domainics.db import dbc, transaction, dmerge, drecall from domainics.tornice import route_base, rest, webreq from domainics import busilogic from domainics.domobj import dset, dobject, datt, DSet, DPage from schema.user import sys_user, sys_user_seqno route_base('/api/repos/') from serv.user import get_user, current_user from schema.repos import ts_repos, ts_repos_seqno, ts_repos_user from schema.repos import ts_repos_queststyles from schema.repos import ts_repos_tags from schema.repos import ts_repos_categories from schema.label import ts_label, ts_label_seqno @rest.GET(r'{repos_sn:int}/desc') @transaction def get_repos_desc(repos_sn): """ """
# -*- coding: utf-8 -*- from domainics.tornice import route_base route_base('/api-test/v1/')
# -*- coding: utf-8 -*- import pytest import decimal from urllib.parse import urljoin from datetime import date, datetime from domainics.domobj import DPage, DSet, dobject, datt, dset from domainics.db import dtable from domainics.tornice import rest, route_base from domainics.tornice.client import rest_client, restcli from domainics.domobj.pagination import parse_header_range route_base('/tests/') class test_a(dtable): sn = datt(int) line = datt(int) name = datt(str) __dobject_key__ = [sn, line] @rest.GET(r'case1/') def case1(page: DPage): print('paginaton: ', page) assert len(page.sortable) == 2 assert page.start == 0 and page.limit == 25