Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add as_user flag to jobs fetch #431

Closed
wants to merge 60 commits into from
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
18cfcb6
Add as_user flag to jobs fetch
Dagonite Jan 16, 2025
afcbf10
Add test cases
Dagonite Jan 22, 2025
f2530ca
Use user_token in test
Dagonite Jan 22, 2025
40b16a2
Update test/e2e/test_core.py
Pasarus Jan 22, 2025
4e26deb
Update test/e2e/test_core.py
Pasarus Jan 22, 2025
54f49fc
Patch and mock out user number
Dagonite Jan 22, 2025
dc63652
Patch and mock out user number
Dagonite Jan 22, 2025
fa99d94
Add correct JSON response
Dagonite Jan 22, 2025
d1b4539
Add list nesting
Dagonite Jan 22, 2025
6c74786
Remove run info from results
Dagonite Jan 22, 2025
1fca227
Add docstring for as_user
Dagonite Jan 23, 2025
ed498ab
Add as_user flag
Dagonite Jan 23, 2025
1c1f026
Add test cases
Dagonite Jan 23, 2025
168db84
Fix url
Dagonite Jan 23, 2025
2015c78
Add limit
Dagonite Jan 23, 2025
53597fa
Use correct output
Dagonite Jan 23, 2025
38af41c
Change test assert
Dagonite Jan 23, 2025
fc9b83a
Removed commented out test
Dagonite Feb 5, 2025
6d9421e
Add more endpoint tests
Dagonite Feb 5, 2025
1c034e2
Remove patches
Dagonite Feb 5, 2025
dd8de4f
Remove mocks
Dagonite Feb 5, 2025
fa3e891
Remove unused params
Dagonite Feb 5, 2025
2ba4a1b
Fix tests
Dagonite Feb 5, 2025
d13af7f
Remove tests
Dagonite Feb 5, 2025
85b23e0
Add test
Dagonite Feb 10, 2025
9ed1912
Update test_core.py
Dagonite Feb 10, 2025
51077fe
Update test_core.py
Dagonite Feb 10, 2025
f0c298f
Update test_core.py
Dagonite Feb 10, 2025
ae90daf
Update test_core.py
Dagonite Feb 10, 2025
71d0c3c
Update test_core.py
Dagonite Feb 10, 2025
ec392bb
Update test_core.py
Dagonite Feb 10, 2025
0455bde
Update test_core.py
Dagonite Feb 10, 2025
e59962e
Update test_core.py
Dagonite Feb 10, 2025
20534fe
Update test_core.py
Dagonite Feb 10, 2025
916e8e1
Update test_core.py
Dagonite Feb 10, 2025
6a447c8
Update test_core.py
Dagonite Feb 10, 2025
e4ac307
Update test_core.py
Dagonite Feb 10, 2025
3b19397
Update test_core.py
Dagonite Feb 10, 2025
1baddeb
Update test_core.py
Dagonite Feb 10, 2025
62a2093
Update test_core.py
Dagonite Feb 10, 2025
b4b94c6
Update test_core.py
Dagonite Feb 10, 2025
be35575
Update test_core.py
Dagonite Feb 10, 2025
b55aeb6
Update test_core.py
Dagonite Feb 10, 2025
5ff4bf5
Update test_core.py
Dagonite Feb 10, 2025
58b9ec1
Update test_core.py
Dagonite Feb 10, 2025
e19613a
Update test_core.py
Dagonite Feb 10, 2025
f05a720
Update test_core.py
Dagonite Feb 10, 2025
757e70a
Update test_core.py
Dagonite Feb 10, 2025
44e497b
Update test_core.py
Dagonite Feb 10, 2025
a1ca3a8
Update test_core.py
Dagonite Feb 10, 2025
7b563a6
Update test_core.py
Dagonite Feb 10, 2025
5b15a7c
Update test_core.py
Dagonite Feb 10, 2025
afe1d25
Update test_core.py
Dagonite Feb 10, 2025
b41462a
Update test_core.py
Dagonite Feb 10, 2025
51ad5b2
Update test_core.py
Dagonite Feb 10, 2025
ba34531
Update test_core.py
Dagonite Feb 10, 2025
63268e3
Update test_core.py
Dagonite Feb 10, 2025
5b5e386
Update router.py
Dagonite Feb 10, 2025
c266d8c
Update test_core.py
Dagonite Feb 10, 2025
17d1aa2
Update test_core.py
Dagonite Feb 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion fia_api/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ async def get_jobs(
order_by: OrderField = "start",
order_direction: Literal["asc", "desc"] = "desc",
include_run: bool = False,
as_user: bool = False,
) -> list[JobResponse] | list[JobWithRunResponse]:
"""
Retrieve all jobs.
Expand All @@ -139,7 +140,14 @@ async def get_jobs(
:return: List of JobResponse objects
"""
user = get_user_from_token(credentials.credentials)
user_number = None if user.role == "staff" else user.user_number

if as_user:
user_number = user.user_number
elif user.role == "staff":
user_number = None
else:
user_number = user.user_number

jobs = get_all_jobs(
limit=limit, offset=offset, order_by=order_by, order_direction=order_direction, user_number=user_number
)
Expand Down
31 changes: 29 additions & 2 deletions test/e2e/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,33 @@ def test_get_all_jobs_for_dev_mode():
assert len(response.json()) == expected_number_of_jobs


@patch("fia_api.core.auth.tokens.requests.post")
def test_get_jobs_as_user(mock_post):
"""Test get all jobs with as_user flag for staff"""
mock_post.return_value.status_code = HTTPStatus.OK
response = client.get("/jobs?as_user=true", headers={"Authorization": f"Bearer {USER_TOKEN}"})
Pasarus marked this conversation as resolved.
Show resolved Hide resolved
assert response.status_code == HTTPStatus.OK
assert response.json() == []


def test_get_jobs_as_user_dev_mode():
"""Test get all jobs with as_user flag in dev mode"""
with patch("fia_api.core.auth.tokens.DEV_MODE", True):
response = client.get("/jobs?as_user=true")
assert response.status_code == HTTPStatus.OK
assert response.json() == []


@patch("fia_api.core.auth.tokens.requests.post")
def test_get_jobs_as_user_false(mock_post):
Pasarus marked this conversation as resolved.
Show resolved Hide resolved
"""Test get all jobs with as_user flag set to false"""
mock_post.return_value.status_code = HTTPStatus.OK
response = client.get("/jobs?as_user=false&limit=10", headers={"Authorization": f"Bearer {STAFF_TOKEN}"})
assert response.status_code == HTTPStatus.OK
expected_number_of_jobs = 10
assert len(response.json()) == expected_number_of_jobs


@patch("fia_api.core.services.job.get_experiments_for_user_number")
@patch("fia_api.core.auth.tokens.requests.post")
def test_get_all_job_for_user(mock_post, mock_get_experiment_numbers_for_user_number):
Expand Down Expand Up @@ -116,7 +143,7 @@ def test_get_all_job_for_user_include_run(mock_post, mock_get_experiment_numbers
"raw_frames": 8067,
"run_end": "2019-03-22T10:18:26",
"run_start": "2019-03-22T10:15:44",
"title": "Whitebeam - vanadium - detector tests - vacuum bad - HT " "on not on all LAB",
"title": "Whitebeam - vanadium - detector tests - vacuum bad - HT on not on all LAB",
"users": "Wood,Guidi,Benedek,Mansson,Juranyi,Nocerino,Forslund,Matsubara",
},
"inputs": {
Expand Down Expand Up @@ -384,7 +411,7 @@ def test_get_jobs_for_instrument_runs_included_for_staff(mock_post):
"raw_frames": 8067,
"run_end": "2019-03-22T10:18:26",
"run_start": "2019-03-22T10:15:44",
"title": "Whitebeam - vanadium - detector tests - vacuum bad - HT " "on not on all LAB",
"title": "Whitebeam - vanadium - detector tests - vacuum bad - HT on not on all LAB",
"users": "Wood,Guidi,Benedek,Mansson,Juranyi,Nocerino,Forslund,Matsubara",
},
"script": None,
Expand Down
Loading