def build_swagger_spec(user, repo, sha, serverName): """Build grlc specification for the given github user / repo in swagger format """ if user and repo: # Init provenance recording prov_g = grlcPROV(user, repo) else: prov_g = None swag = swagger.get_blank_spec() swag['host'] = serverName try: loader = getLoader(user, repo, sha, prov_g) except Exception as e: # If repo does not exits swag['info'] = {'title': 'ERROR!', 'description': str(e)} swag['paths'] = {} return swag prev_commit, next_commit, info, basePath = \ swagger.get_repo_info(loader, sha, prov_g) swag['prev_commit'] = prev_commit swag['next_commit'] = next_commit swag['info'] = info swag['basePath'] = basePath # TODO: can we pass loader to build_spec ? spec = swagger.build_spec(user, repo, sha, prov_g) for item in spec: swag['paths'][item['call_name']] = swagger.get_path_for_item(item) if prov_g: prov_g.end_prov_graph() swag['prov'] = prov_g.serialize(format='turtle') return swag
def build_spec(user, repo, subdir=None, sha=None, prov=None, extraMetadata=[]): """Build grlc specification for the given github user / repo. Deprecated.""" glogger.warning("grlc.utils.build_spec is deprecated and will " \ "be removed in the future. Use grlc.swagger.build_spec instead.") return swagger.build_spec(user, repo, subdir, sha, prov, extraMetadata)
def test_github(self, mockQueryText, mockLoaderFiles, mockGithubRepo): mockLoaderFiles.return_value = filesInRepo mockGithubRepo.return_value = [] user = '******' repo = 'testrepo' spec, warnings = build_spec(user, repo) self.assertEqual(len(spec), len(filesInRepo))
def test_build_spec(self, mockQueryText, mockLoaderFiles, mockGithubRepo): mockLoaderFiles.return_value = filesInRepo mockGithubRepo.return_value = [] '''Using grlc as a library''' import grlc.swagger as swagger user = '******' repo = 'testrepo' spec, warning = swagger.build_spec(user=user, repo=repo) self.assertEqual(len(spec), len(filesInRepo))
def build_swagger_spec(user, repo, subdir, spec_url, sha, serverName): """Build grlc specification for the given github user / repo in swagger format.""" if user and repo: # Init provenance recording prov_g = grlcPROV(user, repo) else: prov_g = None swag = swagger.get_blank_spec() swag['host'] = serverName try: loader = getLoader(user, repo, subdir, spec_url, sha, prov_g) except Exception as e: # If repo does not exits swag['info'] = {'title': 'ERROR!', 'description': str(e)} swag['paths'] = {} return swag prev_commit, next_commit, info, basePath = \ swagger.get_repo_info(loader, sha, prov_g) swag['prev_commit'] = prev_commit swag['next_commit'] = next_commit swag['info'] = info swag['basePath'] = basePath # TODO: can we pass loader to build_spec ? --> Ideally yes! spec, warnings = swagger.build_spec(user, repo, subdir, spec_url, sha, prov_g) # Use items to build API paths for item in spec: swag['paths'][item['call_name']] = swagger.get_path_for_item(item) # TODO: Add bootstrap style to top level HTML # Without a better place to display warnings, we can make them part of the description. if 'description' not in swag['info']: swag['info']['description'] = '' for warn in warnings: swag['info']['description'] += swagger.get_warning_div(warn) if prov_g: prov_g.end_prov_graph() swag['prov'] = prov_g.serialize(format='turtle') return swag
def build_spec(user, repo, subdir=None, sha=None, prov=None, extraMetadata=[]): glogger.warning("grlc.utils.build_spec is deprecated and will " \ "be removed in the future. Use grlc.swagger.build_spec instead.") return swagger.build_spec(user, repo, subdir, sha, prov, extraMetadata)