Source code for wbia.control.manual_test_funcs

# -*- coding: utf-8 -*-
"""
python -c "import utool as ut; ut.write_modscript_alias('Tgen.sh', 'wbia.templates.template_generator')"
sh Tgen.sh --key test --invert --Tcfg with_getters=True with_setters=False --modfname manual_test_funcs

# TODO: Fix this name it is too special case
"""
import logging
import ubelt as ub  # NOQA
from wbia import constants as const
from wbia.control import accessor_decors, controller_inject  # NOQA
import utool as ut
import uuid
from wbia.control.controller_inject import make_ibs_register_decorator

print, rrr, profile = ut.inject2(__name__)
logger = logging.getLogger('wbia')


VERBOSE_SQL = ut.get_argflag(('--print-sql', '--verbose-sql', '--verb-sql', '--verbsql'))
CLASS_INJECT_KEY, register_ibs_method = make_ibs_register_decorator(__name__)


register_api = controller_inject.get_wbia_flask_api(__name__)


TEST_ROWID = 'test_rowid'
TEST_UUID = 'test_uuid'
TEST_USER_IDENTITY = 'test_user_identity'
TEST_CHALLENGE = 'test_challenge_json'
TEST_RESPONSE = 'test_response_json'
TEST_RESULT = 'test_result'
TEST_TIME = 'test_time_posix'


@register_ibs_method
@accessor_decors.ider
@register_api('/api/test/', methods=['GET'])
def _get_all_test_rowids(ibs):
    r"""
    Returns:
        list_ (list): all nids of known animals
        (does not include unknown names)
    """
    all_known_test_rowids = ibs.staging.get_all_rowids(const.TEST_TABLE)
    return all_known_test_rowids


[docs]@register_ibs_method @accessor_decors.adder @register_api('/api/test/', methods=['POST']) def add_test( ibs, test_challenge_list, test_response_list, test_result_list=None, test_uuid_list=None, test_user_identity_list=None, ): assert len(test_challenge_list) == len(test_response_list) n_input = len(test_challenge_list) test_challenge_list = [ ut.to_json(test_challenge) for test_challenge in test_challenge_list ] test_response_list = [ ut.to_json(test_response) for test_response in test_response_list ] if test_uuid_list is None: test_uuid_list = [uuid.uuid4() for _ in range(n_input)] if test_result_list is None: test_result_list = [None] * n_input if test_user_identity_list is None: test_user_identity_list = [None] * n_input superkey_paramx = (0,) colnames = [ TEST_UUID, TEST_CHALLENGE, TEST_RESPONSE, TEST_RESULT, TEST_USER_IDENTITY, ] params_iter = list( zip( test_uuid_list, test_challenge_list, test_response_list, test_result_list, test_user_identity_list, ) ) test_rowid_list = ibs.staging.add_cleanly( const.TEST_TABLE, colnames, params_iter, ibs.get_test_rowids_from_uuid, superkey_paramx, ) return test_rowid_list
[docs]@register_ibs_method @accessor_decors.getter_1to1 @register_api('/api/test/rowid/uuid/', methods=['GET']) def get_test_rowids_from_uuid(ibs, uuid_list): test_rowid_list = ibs.staging.get( const.TEST_TABLE, (TEST_ROWID,), uuid_list, id_colname=TEST_UUID ) return test_rowid_list
[docs]@register_ibs_method @accessor_decors.deleter @register_api('/api/test/', methods=['DELETE']) def delete_test(ibs, test_rowid_list): r""" deletes tests from the database RESTful: Method: DELETE URL: /api/test/ """ if ut.VERBOSE: logger.info('[ibs] deleting %d tests' % len(test_rowid_list)) ibs.staging.delete_rowids(const.TEST_TABLE, test_rowid_list)
[docs]@register_ibs_method @accessor_decors.getter_1to1 @register_api('/api/test/uuid/', methods=['GET']) def get_test_uuid(ibs, test_rowid_list): test_uuid_list = ibs.staging.get(const.TEST_TABLE, (TEST_UUID,), test_rowid_list) return test_uuid_list