Started by timer
Running as SYSTEM
Building remotely on Ubuntu_18.04_bioeng49 (buildslave Testing) in workspace /home/cmiss/Jenkins/workspace/12-Labours-API
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] Done
The recommended git tool is: NONE
No credentials specified
Cloning the remote Git repository
Cloning repository https://github.com/ABI-Software/12-labours-api.git
> git init /home/cmiss/Jenkins/workspace/12-Labours-API # timeout=10
Fetching upstream changes from https://github.com/ABI-Software/12-labours-api.git
> git --version # timeout=10
> git --version # 'git version 2.25.1'
> git fetch --tags --force --progress -- https://github.com/ABI-Software/12-labours-api.git +refs/heads/*:refs/remotes/origin/* # timeout=10
> git config remote.origin.url https://github.com/ABI-Software/12-labours-api.git # timeout=10
> git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
Avoid second fetch
> git rev-parse refs/remotes/origin/dev^{commit} # timeout=10
Checking out Revision 1d73ff99a0bee325808aef75f102a07ab0d11cda (refs/remotes/origin/dev)
> git config core.sparsecheckout # timeout=10
> git checkout -f 1d73ff99a0bee325808aef75f102a07ab0d11cda # timeout=10
Commit message: "Merge pull request #16 from david-jianwei-yu/thumbnail-display"
> git rev-list --no-walk 1d73ff99a0bee325808aef75f102a07ab0d11cda # timeout=10
[12-Labours-API] $ /bin/sh -xe /tmp/shiningpanda1822054621379849369.sh
+ pwd
+ export PYTHONPATH=/home/cmiss/Jenkins/workspace/12-Labours-API
+ pip install -r requirements.txt
Requirement already satisfied: autopep8==1.6.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 1)) (1.6.0)
Requirement already satisfied: fastapi==0.80.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 2)) (0.80.0)
Requirement already satisfied: gen3==4.15.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 3)) (4.15.0)
Requirement already satisfied: gunicorn==20.1.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 4)) (20.1.0)
Requirement already satisfied: python-dotenv==0.20.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 5)) (0.20.0)
Requirement already satisfied: python-irodsclient==1.1.4 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 6)) (1.1.4)
Requirement already satisfied: sgqlc==16.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 7)) (16.0)
Requirement already satisfied: uvicorn==0.18.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements.txt (line 8)) (0.18.2)
Requirement already satisfied: pycodestyle>=2.8.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from autopep8==1.6.0->-r requirements.txt (line 1)) (2.10.0)
Requirement already satisfied: toml in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from autopep8==1.6.0->-r requirements.txt (line 1)) (0.10.2)
Requirement already satisfied: pydantic!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0,>=1.6.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from fastapi==0.80.0->-r requirements.txt (line 2)) (1.10.4)
Requirement already satisfied: starlette==0.19.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from fastapi==0.80.0->-r requirements.txt (line 2)) (0.19.1)
Requirement already satisfied: tqdm<5.0.0,>=4.61.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (4.64.1)
Requirement already satisfied: cdislogging<2.0.0,>=1.1.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (1.1.1)
Requirement already satisfied: python-dateutil in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (2.8.2)
Requirement already satisfied: httpx in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (0.23.3)
Requirement already satisfied: indexclient in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (2.1.0)
Requirement already satisfied: humanfriendly in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (10.0)
Requirement already satisfied: requests in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (2.28.2)
Requirement already satisfied: aiohttp in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (3.8.3)
Requirement already satisfied: dataclasses-json in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (0.5.7)
Requirement already satisfied: aiofiles<0.9.0,>=0.8.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (0.8.0)
Requirement already satisfied: jsonschema in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (3.2.0)
Requirement already satisfied: pandas<2.0.0,>=1.4.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (1.5.3)
Requirement already satisfied: drsclient<0.3.0,>=0.2.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (0.2.3)
Requirement already satisfied: click in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (7.1.2)
Requirement already satisfied: pypfb<1.0.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (0.5.21)
Requirement already satisfied: backoff in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gen3==4.15.0->-r requirements.txt (line 3)) (1.11.1)
Requirement already satisfied: setuptools>=3.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from gunicorn==20.1.0->-r requirements.txt (line 4)) (66.1.1)
Requirement already satisfied: PrettyTable>=0.7.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from python-irodsclient==1.1.4->-r requirements.txt (line 6)) (3.6.0)
Requirement already satisfied: six>=1.10.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from python-irodsclient==1.1.4->-r requirements.txt (line 6)) (1.16.0)
Requirement already satisfied: defusedxml in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from python-irodsclient==1.1.4->-r requirements.txt (line 6)) (0.7.1)
Requirement already satisfied: graphql-core in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from sgqlc==16.0->-r requirements.txt (line 7)) (3.2.3)
Requirement already satisfied: h11>=0.8 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from uvicorn==0.18.2->-r requirements.txt (line 8)) (0.14.0)
Requirement already satisfied: anyio<5,>=3.4.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from starlette==0.19.1->fastapi==0.80.0->-r requirements.txt (line 2)) (3.6.2)
Requirement already satisfied: typing-extensions>=3.10.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from starlette==0.19.1->fastapi==0.80.0->-r requirements.txt (line 2)) (4.4.0)
Requirement already satisfied: asyncio<4.0.0,>=3.4.3 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from drsclient<0.3.0,>=0.2.2->gen3==4.15.0->-r requirements.txt (line 3)) (3.4.3)
Requirement already satisfied: certifi in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from httpx->gen3==4.15.0->-r requirements.txt (line 3)) (2022.12.7)
Requirement already satisfied: sniffio in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from httpx->gen3==4.15.0->-r requirements.txt (line 3)) (1.3.0)
Requirement already satisfied: rfc3986[idna2008]<2,>=1.3 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from httpx->gen3==4.15.0->-r requirements.txt (line 3)) (1.5.0)
Requirement already satisfied: httpcore<0.17.0,>=0.15.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from httpx->gen3==4.15.0->-r requirements.txt (line 3)) (0.16.3)
Requirement already satisfied: numpy>=1.20.3 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pandas<2.0.0,>=1.4.2->gen3==4.15.0->-r requirements.txt (line 3)) (1.24.1)
Requirement already satisfied: pytz>=2020.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pandas<2.0.0,>=1.4.2->gen3==4.15.0->-r requirements.txt (line 3)) (2022.7.1)
Requirement already satisfied: wcwidth in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from PrettyTable>=0.7.2->python-irodsclient==1.1.4->-r requirements.txt (line 6)) (0.2.6)
Requirement already satisfied: fastavro<=1.4.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (1.4.1)
Requirement already satisfied: dictionaryutils<4.0.0,>=3.4.3 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (3.4.4)
Requirement already satisfied: gdcdictionary<2.0.0,>=1.2.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (1.2.0)
Requirement already satisfied: importlib_metadata<2.0.0,>=1.3.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (1.7.0)
Requirement already satisfied: python-json-logger<0.2.0,>=0.1.11 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (0.1.11)
Requirement already satisfied: PyYAML<6.0.0,>=5.3.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (5.4.1)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (2.1.1)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (1.8.2)
Requirement already satisfied: attrs>=17.3.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (22.2.0)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (4.0.2)
Requirement already satisfied: frozenlist>=1.1.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (1.3.3)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (6.0.4)
Requirement already satisfied: aiosignal>=1.1.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from aiohttp->gen3==4.15.0->-r requirements.txt (line 3)) (1.3.1)
Requirement already satisfied: idna<4,>=2.5 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from requests->gen3==4.15.0->-r requirements.txt (line 3)) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from requests->gen3==4.15.0->-r requirements.txt (line 3)) (1.26.14)
Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from dataclasses-json->gen3==4.15.0->-r requirements.txt (line 3)) (3.19.0)
Requirement already satisfied: typing-inspect>=0.4.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from dataclasses-json->gen3==4.15.0->-r requirements.txt (line 3)) (0.8.0)
Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from dataclasses-json->gen3==4.15.0->-r requirements.txt (line 3)) (1.5.1)
Requirement already satisfied: pyrsistent>=0.14.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from jsonschema->gen3==4.15.0->-r requirements.txt (line 3)) (0.19.3)
Requirement already satisfied: zipp>=0.5 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from importlib_metadata<2.0.0,>=1.3.0->pypfb<1.0.0->gen3==4.15.0->-r requirements.txt (line 3)) (3.11.0)
Requirement already satisfied: packaging>=17.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from marshmallow<4.0.0,>=3.3.0->dataclasses-json->gen3==4.15.0->-r requirements.txt (line 3)) (23.0)
Requirement already satisfied: mypy-extensions>=0.3.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from typing-inspect>=0.4.0->dataclasses-json->gen3==4.15.0->-r requirements.txt (line 3)) (0.4.3)
[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
+ pip install -r requirements-dev.txt
Requirement already satisfied: pytest==7.1.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from -r requirements-dev.txt (line 1)) (7.1.2)
Requirement already satisfied: py>=1.8.2 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (1.11.0)
Requirement already satisfied: packaging in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (23.0)
Requirement already satisfied: attrs>=19.2.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (22.2.0)
Requirement already satisfied: tomli>=1.0.0 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (2.0.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (1.0.0)
Requirement already satisfied: iniconfig in /home/cmiss/Jenkins/shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages (from pytest==7.1.2->-r requirements-dev.txt (line 1)) (2.0.0)
[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
+ pytest
============================= test session starts ==============================
platform linux -- Python 3.9.16, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/cmiss/Jenkins/workspace/12-Labours-API
plugins: anyio-3.6.2
collected 17 items
tests/test_api.py FFFFFFF.F... [ 70%]
tests/test_data.py FFFF. [100%]
=================================== FAILURES ===================================
____________________________ test_get_gen3_program _____________________________
client = <starlette.testclient.TestClient object at 0x7f8ef88694f0>
def test_get_gen3_program(client):
response = client.get("/program")
result = response.json()
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <Response [404]>.status_code
tests/test_api.py:15: AssertionError
____________________________ test_get_gen3_project _____________________________
client = <starlette.testclient.TestClient object at 0x7f8ef8692e50>
def test_get_gen3_project(client):
response = client.get("/project/demo1")
result = response.json()
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <Response [404]>.status_code
tests/test_api.py:23: AssertionError
___________________________ test_get_gen3_dictionary ___________________________
client = <starlette.testclient.TestClient object at 0x7f8ef869bac0>
def test_get_gen3_dictionary(client):
pass_case = {
"program": "demo1",
"project": "12L",
}
response = client.post("/dictionary", json=pass_case)
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <Response [404]>.status_code
tests/test_api.py:37: AssertionError
__________________________ test_get_gen3_node_records __________________________
client = <starlette.testclient.TestClient object at 0x7f8ef865fc10>
def test_get_gen3_node_records(client):
NODE_TYPE = "experiment"
pass_case = {
"program": "demo1",
"project": "12L",
}
> response = client.post(f"/records/{NODE_TYPE}", json=pass_case)
tests/test_api.py:62:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:234: in get_gen3_node_records
node_record = SUBMISSION.export_node(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:384: in export_node
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">e5078bcf-8a66-491a-82db-1a3b13533693</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
_____________________________ test_get_gen3_record _____________________________
client = <starlette.testclient.TestClient object at 0x7f8ef6f0e940>
def test_get_gen3_record(client):
UUID = "5b9ae1bd-e780-4869-a458-b3422084c480"
pass_case = {
"program": "demo1",
"project": "12L",
}
> response = client.post(f"/record/{UUID}", json=pass_case)
tests/test_api.py:103:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:261: in get_gen3_record
record = SUBMISSION.export_record(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:348: in export_record
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">93169b55-d330-4ff6-a769-cae1388d4af8</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
______________________________ test_graphql_query ______________________________
client = <starlette.testclient.TestClient object at 0x7f8ef71a3df0>
def test_graphql_query(client):
DATASET_ID = "dataset-217-version-2-dataset_description"
pass_case = {
"node": "dataset_description",
"filter": {
"submitter_id": [DATASET_ID]
},
"search": ""
}
response = client.post("/graphql/query", json=pass_case)
result = response.json()
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <Response [404]>.status_code
tests/test_api.py:145: AssertionError
___________________________ test_graphql_pagination ____________________________
client = <starlette.testclient.TestClient object at 0x7f8ef726d3d0>
def test_graphql_pagination(client):
filter_pass_case = {
"node": "experiment",
"filter": {
"1": {
"node": "manifest_filter",
"filter": {
"additional_types": [
"text/vnd.abi.plot+tab-separated-values",
"text/vnd.abi.plot+csv"
]
}
},
"2": {
"node": "case_filter",
"filter": {
"species": [
"Rattus norvegicus"
]
}
},
"3": {
"node": "case_filter",
"filter": {
"sex": [
"Male"
]
}
}
},
"relation": "and"
}
response = client.post("/graphql/pagination/", json=filter_pass_case)
result = response.json()
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <Response [404]>.status_code
tests/test_api.py:189: AssertionError
_______________________ test_download_gen3_metadata_file _______________________
client = <starlette.testclient.TestClient object at 0x7f8ef7400f10>
def test_download_gen3_metadata_file(client):
PROG_NAME = "demo1"
PROJ_NAME = "12L"
UUID = "22c4459b-5f4f-4e62-abd2-2aa205fe838b"
FORM = "json"
response = client.get(
f"/metadata/download/{PROG_NAME}/{PROJ_NAME}/{UUID}/{FORM}")
result = response.json()
> assert response.status_code == 200
E assert 400 == 200
E + where 400 = <Response [400]>.status_code
tests/test_api.py:293: AssertionError
_____________________________ test_experiment_node _____________________________
client = <starlette.testclient.TestClient object at 0x7f8ef70ea370>
def test_experiment_node(client):
UUID = "22c4459b-5f4f-4e62-abd2-2aa205fe838b"
payload = {
"program": "demo1",
"project": "12L",
}
> response = client.post(
f"/record/{UUID}", json=payload)
tests/test_data.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:261: in get_gen3_record
record = SUBMISSION.export_record(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:348: in export_record
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">144a82e2-72c0-46f7-abb9-d3eaf4bcb68f</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
________________________ test_dataset_description_node _________________________
client = <starlette.testclient.TestClient object at 0x7f8ef6e057f0>
def test_dataset_description_node(client):
UUID = "5b9ae1bd-e780-4869-a458-b3422084c480"
payload = {
"program": "demo1",
"project": "12L",
}
> response = client.post(
f"/record/{UUID}", json=payload)
tests/test_data.py:65:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:261: in get_gen3_record
record = SUBMISSION.export_record(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:348: in export_record
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">7dacb0ba-bbb6-4b0b-bfd3-7805d282c8a3</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
______________________________ test_manifest_node ______________________________
client = <starlette.testclient.TestClient object at 0x7f8ef71ca310>
def test_manifest_node(client):
UUID = "fd65a93f-ff62-45e4-b7b6-96419ef4f749"
payload = {
"program": "demo1",
"project": "12L",
}
> response = client.post(
f"/record/{UUID}", json=payload)
tests/test_data.py:169:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:261: in get_gen3_record
record = SUBMISSION.export_record(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:348: in export_record
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">60111aa9-0743-447a-a48b-3750b3f87575</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
________________________________ test_case_node ________________________________
client = <starlette.testclient.TestClient object at 0x7f8ef658f340>
def test_case_node(client):
UUID = "c58ab983-6cf9-4174-a7a9-20cdf1d6bc33"
payload = {
"program": "demo1",
"project": "12L",
}
> response = client.post(
f"/record/{UUID}", json=payload)
tests/test_data.py:219:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:635: in post
return self.request("POST", url, data=data, json=json, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:476: in request
return super().request(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:270: in send
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/testclient.py:267: in send
portal.call(self.app, scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:283: in call
return cast(T_Retval, self.start_task_soon(func, *args).result())
/usr/lib/python3.9/concurrent/futures/_base.py:446: in result
return self.__get_result()
/usr/lib/python3.9/concurrent/futures/_base.py:391: in __get_result
raise self._exception
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/anyio/from_thread.py:219: in _call_func
retval = await retval
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/applications.py:269: in __call__
await super().__call__(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/applications.py:124: in __call__
await self.middleware_stack(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:184: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/errors.py:162: in __call__
await self.app(scope, receive, _send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/middleware/cors.py:84: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:93: in __call__
raise exc
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/exceptions.py:82: in __call__
await self.app(scope, receive, sender)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:21: in __call__
raise e
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:670: in __call__
await route.handle(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:266: in handle
await self.app(scope, receive, send)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/starlette/routing.py:65: in app
response = await func(request)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:227: in app
raw_response = await run_endpoint_function(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/fastapi/routing.py:160: in run_endpoint_function
return await dependant.call(**values)
app/main.py:261: in get_gen3_record
record = SUBMISSION.export_record(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/submission.py:348: in export_record
output = requests.get(api_url, auth=self._auth_provider).text
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:573: in request
prep = self.prepare_request(req)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/sessions.py:484: in prepare_request
p.prepare(
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:372: in prepare
self.prepare_auth(auth, url)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/requests/models.py:603: in prepare_auth
r = auth(self)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:266: in __call__
request.headers["Authorization"] = self._get_auth_value()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:378: in _get_auth_value
return "bearer " + self.get_access_token()
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:367: in get_access_token
return self.refresh_access_token(endpoint)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:304: in refresh_access_token
self._access_token = get_access_token_with_key(self._refresh_token)
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:77: in get_access_token_with_key
return _handle_access_token_response(resp, token_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
resp = <Response [401]>, token_key = 'access_token'
def _handle_access_token_response(resp, token_key):
"""
Shared helper for both get_access_token_with_key and get_access_token_from_wts
"""
err_msg = "Failed to get an access token from {}:\n{}"
if resp.status_code != 200:
> raise Gen3AuthError(err_msg.format(resp.url, resp.text))
E gen3.auth.Gen3AuthError: Failed to get an access token from https://gen3.abi-ctt-ctp.cloud.edu.au/user/credentials/cdis/access_token:
E <!doctype html>
E
E <html lang="en">
E <head>
E <meta charset="utf-8">
E <title>401</title>
E <link rel="stylesheet" href="/api/static/css/bootstrap.min.css">
E <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
E <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
E <script src="/api/static/js/bootstrap.min.js"></script>
E </head>
E
E <body>
E <main>
E <img class="error-page__logo" src="/user/static/img/logo.svg" />
E <div class="error-page">
E <div class="error-page__banner">
E <h1>Gen3 Data Commons</h1>
E </div>
E <div class="error-page__status-code">
E <div class="error-page__status-code-text">
E <h1>401</h1>
E <h2>Unauthorized</h2>
E </div>
E <img class="error-page__picture" src="/user/static/img/404.svg" />
E </div>
E <div class="error-page__information">
E <p class="body">Error Identifier:</p>
E <p class="introduction">34fe7ea6-d6bd-4803-b138-61c98d4d74b9</p>
E
E <p class="body">Error Message:</p>
E <p class="introduction">[401] - Authentication Error: Signature has expired</p>
E
E <div>
E
E <p class="body">Please try again!</p>
E
E </div>
E </div>
E </div>
E </main>
E </body>
E <style type="text/css">
E
E .body {
E font-size: 16px;
E color: #9b9b9b;
E margin: 0;
E }
E
E .introduction {
E font-size: 18px;
E font-weight: 500;
E line-height: 18px;
E letter-spacing: .03rem;
E color: #000000;
E display: inline-block;
E margin: 13px 0 13px 0;
E }
E
E .auth-data-logo {
E width: 314px;
E height: 116px;
E display: block;
E margin: auto;
E margin-bottom: 15px;
E }
E
E body {
E margin: 30px 30px;
E background-color: #F5F5F5;
E font-family: 'Source Sans Pro', sans-serif;
E }
E
E .error-page {
E width: 100%;
E display: flex;
E flex-flow: column;
E justify-content: center;
E background-color: white;
E border: 1px solid #9b9b9b;
E border-radius: 8px;
E }
E
E .error-page__logo {
E width: 100%;
E display: flex;
E margin-bottom: 15px;
E max-height: 116px;
E justify-content: center;
E }
E
E .error-page__banner {
E min-height: 70px;
E background-color: #3283C8;
E text-align: center;
E color: white;
E border-radius: 8px 8px 0 0;
E font-weight: lighter;
E }
E
E .error-page__status-code {
E display: flex;
E justify-content: center;
E align-items: center;
E margin: 60px 0 25px 0;
E text-align: center;
E background-color: white;
E }
E
E .error-page__status-code-text {
E display: flex;
E flex-flow: column;
E margin-right: 20px;
E }
E
E .error-page__status-code-text h1 {
E font-size: 155px;
E font-weight: lighter;
E margin: 0;
E line-height: 1em;
E }
E
E .error-page__status-code-text h2 {
E margin: 0;
E }
E
E .error-page__picture {
E height: 186px;
E margin-left: 20px;
E }
E
E .error-page__information {
E margin: 0 30px 60px 30px;
E border: 1px solid #9b9b9b;
E border-radius: 4px;
E background-color: #f5f5f5;
E padding: 20px 20px;
E }
E
E .error-page__information a {
E color: #3283C8;
E text-decoration: none;
E }
E
E </style>
E </html>
../../shiningpanda/jobs/084398e7/virtualenvs/d41d8cd9/lib/python3.9/site-packages/gen3/auth.py:58: Gen3AuthError
=============================== warnings summary ===============================
app/sgqlc.py:23
/home/cmiss/Jenkins/workspace/12-Labours-API/app/sgqlc.py:23: DeprecationWarning: invalid escape sequence \{
'\'([_a-z]+)\'', r'\1', re.sub('\{([^{].*[^}])\}', r'\1', f'{item.filter}'))
app/search.py:37
app/search.py:37
/home/cmiss/Jenkins/workspace/12-Labours-API/app/search.py:37: DeprecationWarning: invalid escape sequence \s
f'(\s{keyword}|{keyword}\s)', result[DataObjectMeta.value])
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_api.py::test_get_gen3_program - assert 404 == 200
FAILED tests/test_api.py::test_get_gen3_project - assert 404 == 200
FAILED tests/test_api.py::test_get_gen3_dictionary - assert 404 == 200
FAILED tests/test_api.py::test_get_gen3_node_records - gen3.auth.Gen3AuthErro...
FAILED tests/test_api.py::test_get_gen3_record - gen3.auth.Gen3AuthError: Fai...
FAILED tests/test_api.py::test_graphql_query - assert 404 == 200
FAILED tests/test_api.py::test_graphql_pagination - assert 404 == 200
FAILED tests/test_api.py::test_download_gen3_metadata_file - assert 400 == 200
FAILED tests/test_data.py::test_experiment_node - gen3.auth.Gen3AuthError: Fa...
FAILED tests/test_data.py::test_dataset_description_node - gen3.auth.Gen3Auth...
FAILED tests/test_data.py::test_manifest_node - gen3.auth.Gen3AuthError: Fail...
FAILED tests/test_data.py::test_case_node - gen3.auth.Gen3AuthError: Failed t...
=================== 12 failed, 5 passed, 3 warnings in 4.80s ===================
Build step 'Virtualenv Builder' marked build as failure
[Slack Notifications] found #359 as previous completed, non-aborted build
[Slack Notifications] will send OnEveryFailureNotification because build matches and user preferences allow it
Finished: FAILURE