Пример #1
0
 def __init__(self):
     submod = get_service_name() or 'PanGenomeAPI'
     self.userlog = log.log(submod,
                            ip_address=True,
                            authuser=True,
                            module=True,
                            method=True,
                            call_id=True,
                            changecallback=self.logcallback,
                            config=get_config_file())
     self.serverlog = log.log(submod,
                              ip_address=True,
                              authuser=True,
                              module=True,
                              method=True,
                              call_id=True,
                              logfile=self.userlog.get_log_file())
     self.serverlog.set_log_level(6)
     self.rpc_service = JSONRPCServiceCustom()
     self.method_authentication = dict()
     self.rpc_service.add(
         impl_PanGenomeAPI.search_orthologs_from_pangenome,
         name='PanGenomeAPI.search_orthologs_from_pangenome',
         types=[dict])
     self.method_authentication[
         'PanGenomeAPI.search_orthologs_from_pangenome'] = 'optional'  # noqa
     self.rpc_service.add(
         impl_PanGenomeAPI.search_families_from_comparison_genome,
         name='PanGenomeAPI.search_families_from_comparison_genome',
         types=[dict])
     self.method_authentication[
         'PanGenomeAPI.search_families_from_comparison_genome'] = 'optional'  # noqa
     self.rpc_service.add(
         impl_PanGenomeAPI.search_functions_from_comparison_genome,
         name='PanGenomeAPI.search_functions_from_comparison_genome',
         types=[dict])
     self.method_authentication[
         'PanGenomeAPI.search_functions_from_comparison_genome'] = 'optional'  # noqa
     self.rpc_service.add(
         impl_PanGenomeAPI.search_comparison_genome_from_comparison_genome,
         name='PanGenomeAPI.search_comparison_genome_from_comparison_genome',
         types=[dict])
     self.method_authentication[
         'PanGenomeAPI.search_comparison_genome_from_comparison_genome'] = 'optional'  # noqa
     self.rpc_service.add(
         impl_PanGenomeAPI.compute_summary_from_pangenome,
         name='PanGenomeAPI.compute_summary_from_pangenome',
         types=[dict])
     self.method_authentication[
         'PanGenomeAPI.compute_summary_from_pangenome'] = 'optional'  # noqa
     self.rpc_service.add(impl_PanGenomeAPI.status,
                          name='PanGenomeAPI.status',
                          types=[dict])
     authurl = config.get(AUTH) if config else None
     self.auth_client = _KBaseAuth(authurl)
    def setUpClass(cls):
        token = environ.get('KB_AUTH_TOKEN', None)
        config_file = environ.get('KB_DEPLOYMENT_CONFIG', None)
        cls.cfg = {}
        config = ConfigParser()
        config.read(config_file)
        for nameval in config.items('PanGenomeAPI'):
            cls.cfg[nameval[0]] = nameval[1]
        # Getting username from Auth profile for token
        authServiceUrl = cls.cfg['auth-service-url']
        auth_client = _KBaseAuth(authServiceUrl)
        user_id = auth_client.get_user(token)
        # WARNING: don't call any logging methods on the context object,
        # it'll result in a NoneType error
        cls.ctx = MethodContext(None)
        cls.ctx.update({
            'token':
            token,
            'user_id':
            user_id,
            'provenance': [{
                'service': 'PanGenomeAPI',
                'method': 'please_never_use_it_in_production',
                'method_params': []
            }],
            'authenticated':
            1
        })
        cls.wsURL = cls.cfg['workspace-url']
        cls.wsClient = workspaceService(cls.wsURL)
        cls.serviceImpl = PanGenomeAPI(cls.cfg)
        cls.scratch = cls.cfg['scratch']
        shutil.rmtree(cls.scratch)
        os.mkdir(cls.scratch)
        cls.callback_url = os.environ['SDK_CALLBACK_URL']

        suffix = int(time.time() * 1000)
        wsName = "test_pangenome_api_" + str(suffix)
        cls.ws_info = cls.wsClient.create_workspace({'workspace': wsName})
        cls.gcs = GenomeComparisonSDK(cls.callback_url)
        cls.gaa = GenomeAnnotationAPI(cls.callback_url)
        cls.prepare_data()