Skip to content

Commit

Permalink
Add instrument fixture
Browse files Browse the repository at this point in the history
  • Loading branch information
Dagonite committed Feb 11, 2025
1 parent e8628d5 commit 53d7b31
Showing 1 changed file with 53 additions and 2 deletions.
55 changes: 53 additions & 2 deletions test/e2e/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@
end-to-end tests
"""

import datetime
import os
from http import HTTPStatus
from unittest import mock
from unittest.mock import patch

import pytest
from db.data_models import Base, Instrument, Job, JobOwner, JobType, Run, Script, State
from starlette.testclient import TestClient

from fia_api.core.repositories import ENGINE, SESSION
from fia_api.fia_api import app
from test.utils import FIA_FAKER_PROVIDER

Expand All @@ -28,6 +32,51 @@
"-ktYEwdUfg5_PmUocmrAonZ6lwPJdcMoklWnVME1wLE"
)

TEST_JOB_OWNER = JobOwner(user_number=1820497)
TEST_INSTRUMENT = Instrument(instrument_name="foo", latest_run=1, specification={"foo": "bar"})
TEST_SCRIPT = Script(script="print('Script 1')", sha="some_sha", script_hash="some_hash")
TEST_JOB = Job(
start=datetime.datetime.now(datetime.UTC),
owner=TEST_JOB_OWNER,
state=State.NOT_STARTED,
inputs={"input": "value"},
script=TEST_SCRIPT,
instrument=TEST_INSTRUMENT,
job_type=JobType.AUTOREDUCTION,
)
TEST_RUN = Run(
filename="test_run",
owner=TEST_JOB_OWNER,
title="Test Run",
users="User1, User2",
run_start=datetime.datetime.now(datetime.UTC),
run_end=datetime.datetime.now(datetime.UTC),
good_frames=200,
raw_frames=200,
instrument=TEST_INSTRUMENT,
)
TEST_RUN.jobs.append(TEST_JOB)


@pytest.fixture(autouse=True)
def user_owned_data_setup() -> None:
"""
Set up the test database before module
:return: None
"""
Base.metadata.drop_all(ENGINE)
Base.metadata.create_all(ENGINE)

with SESSION() as session:
session.add(TEST_SCRIPT)
session.add(TEST_INSTRUMENT)
session.add(TEST_RUN)
session.add(TEST_JOB)
session.commit()
session.refresh(TEST_SCRIPT)
session.refresh(TEST_INSTRUMENT)
session.refresh(TEST_RUN)


def test_get_job_by_id_no_token_results_in_http_forbidden():
"""
Expand Down Expand Up @@ -640,11 +689,13 @@ def test_get_all_jobs_response_body_as_user_true_and_dev_mode_true(mock_get_expe

@patch("fia_api.core.specifcations.job.get_experiments_for_user_number")
@patch("fia_api.core.auth.tokens.requests.post")
def test_get_mari_jobs_as_user_true_and_as_staff(mock_post, mock_get_experiment_numbers_for_user_number):
def test_get_mari_jobs_as_user_true_and_as_staff(
mock_post, mock_get_experiment_numbers_for_user_number, user_owned_data_setup
):
"""Test that a single job is returned when a staff user gets jobs from MARI with the as_user flag set to true"""
mock_get_experiment_numbers_for_user_number.return_value = [1820497]
mock_post.return_value.status_code = HTTPStatus.OK
response = client.get("/instrument/mari/jobs?&as_user=true", headers={"Authorization": f"Bearer {STAFF_TOKEN}"})
response = client.get("/instrument/foo/jobs?&as_user=true", headers={"Authorization": f"Bearer {STAFF_TOKEN}"})
assert response.status_code == HTTPStatus.OK
assert len(response.json()) == 1

Expand Down

0 comments on commit 53d7b31

Please sign in to comment.