def mock_urlretrieve(*args, **kwargs): mock_record1 = example_boutiques_tool mock_record2 = MockZenodoRecord( 2587160, "makeblastdb_foo", "", "https://zenodo.org/api/files/" "d861b2cd-ec68-4613-9847-1911904a1218/" "makeblastdb.json") temp = tempfile.NamedTemporaryFile(delete=False, mode='w+t') if str(example_boutiques_tool.id) in args[0]: json.dump(mock_zenodo_search([mock_record1]).mock_json, temp) temp.close() return urlretrieve("file://%s" % temp.name, args[1]) if "makeblastdb.json" in args[0]: json.dump(mock_zenodo_search([mock_record2]).mock_json, temp) temp.close() return urlretrieve("file://%s" % temp.name, args[1]) return urlretrieve(args[0], args[1])
def mock_get(*args, **kwargs): # Check that URL looks good split = args[0].split('/') assert (len(split) >= 5) command = split[4] # Records command if command == "records": assert (len(split) >= 6) record_id = split[10] if len(split) > 6 else split[5] if record_id == "00000": # Inexistent tool return MockHttpResponse(404) mock_record1 = example_boutiques_tool mock_record1.id = int(record_id) if record_id == "22222": mock_record1.is_last_version = False mock_get = get_zenodo_record(mock_record1) if "?q=keywords:" in args[0]: return mock_zenodo_search([mock_record1]) return MockHttpResponse(200, mock_get) # Deposit command if command == "deposit": # Check auth if kwargs.get('params') and kwargs.get('params').get('access_token'): return MockHttpResponse(200) else: return MockHttpResponse(401)
def mock_get(query, exact, *args, **kwargs): max_results = args[0].split("=")[-1] # Long description text to test truncation long_description = ("Lorem ipsum dolor sit amet, consectetur adipiscing " "elit, sed do eiusmod tempor incididunt ut labore et " "dolore magna aliqua. Ut enim ad minim veniam, quis " "nostrud exercitation ullamco laboris nisi ut aliquip " "ex ea commodo consequat.") mock_records = [] # Return an arbitrary list of results with length max_results if query == "boutiques": for i in range(0, int(max_results)): mock_records.append( MockZenodoRecord(i, "Example Tool %s" % i, long_description, "exampleTool%s.json" % i, i)) # Return only records containing the query else: mock_records.append(MockZenodoRecord(1234567, query)) if not exact: mock_records.append(MockZenodoRecord(1234568, "foo-" + query)) mock_records.append(MockZenodoRecord(1234569, query + "-bar")) return mock_zenodo_search(mock_records)
def mock_get(*args, **kwargs): query = args[0].split("=")[1] query = query[:query.find("&")] query = query.replace("*", '') mock_records = [] # Return an arbitrary list of results for i in range(0, 10): mock_records.append(MockZenodoRecord(i, "Example Tool %s" % i)) return mock_zenodo_search(mock_records)
def mock_get(): mock_record = MockZenodoRecord(1472823, "Example Boutiques Tool", "", "https://zenodo.org/api/files/" "e5628764-fc57-462e-9982-65f8d6fdb487/" "example1_docker.json") return mock_zenodo_search([mock_record])
def mock_get(): return mock_zenodo_search([example_boutiques_tool])
def mock_get_not_found(): return mock_zenodo_search([])