Skip to content

Commit

Permalink
Stop using pytest-lazy-fixture
Browse files Browse the repository at this point in the history
As it does not work with pytest>8.0.0
  • Loading branch information
T-Nicholls committed Mar 4, 2024
1 parent 5179766 commit c32f154
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 89 deletions.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ dev = [
"pydata-sphinx-theme>=0.12",
"pytest",
"pytest-cov",
"pytest-lazy-fixture",
"sphinx-autobuild",
"sphinx-copybutton",
"sphinx-design",
Expand Down
61 changes: 18 additions & 43 deletions tests/test_data_source.py
Original file line number Diff line number Diff line change
@@ -1,82 +1,57 @@
import pytest
from constants import DUMMY_VALUE_2
from pytest_lazyfixture import lazy_fixture

import pytac


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_get_device(simple_object, y_device):
def test_get_device(simple_object, y_device, request):
simple_object = request.getfixturevalue(simple_object)
assert simple_object.get_device("y") == y_device


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_get_unitconv(simple_object, unit_uc):
def test_get_unitconv(simple_object, unit_uc, request):
simple_object = request.getfixturevalue(simple_object)
assert simple_object.get_unitconv("x") == unit_uc


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_get_fields(simple_object):
def test_get_fields(simple_object, request):
simple_object = request.getfixturevalue(simple_object)
fields = simple_object.get_fields()[pytac.LIVE]
assert set(fields) == {"x", "y"}


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_set_value(simple_object):
def test_set_value(simple_object, request):
simple_object = request.getfixturevalue(simple_object)
simple_object.set_value("x", DUMMY_VALUE_2, pytac.ENG, pytac.LIVE)
simple_object.get_device("x").set_value.assert_called_with(DUMMY_VALUE_2, True)


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_get_value_sim(simple_object):
def test_get_value_sim(simple_object, request):
simple_object = request.getfixturevalue(simple_object)
assert (
simple_object.get_value("x", pytac.RB, pytac.PHYS, pytac.SIM) == DUMMY_VALUE_2
)


@pytest.mark.parametrize(
"simple_object",
[
lazy_fixture("simple_element"),
lazy_fixture("simple_lattice"),
lazy_fixture("simple_data_source_manager"),
],
"simple_object", ["simple_element", "simple_lattice", "simple_data_source_manager"]
)
def test_unit_conversion(simple_object, double_uc):
def test_unit_conversion(simple_object, double_uc, request):
simple_object = request.getfixturevalue(simple_object)
simple_object.set_value("y", DUMMY_VALUE_2, pytac.PHYS, pytac.LIVE)
simple_object.get_device("y").set_value.assert_called_with(DUMMY_VALUE_2 / 2, True)
75 changes: 30 additions & 45 deletions tests/test_machine.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

import numpy
import pytest
from pytest_lazyfixture import lazy_fixture

import pytac

Expand All @@ -28,22 +27,18 @@ def test_load_lattice_using_default_dir():

@pytest.mark.parametrize(
"lattice, name, n_elements, length",
[
(lazy_fixture("vmx_ring"), "VMX", 2142, 561.571),
(lazy_fixture("diad_ring"), "DIAD", 2144, 561.571),
],
[("vmx_ring", "VMX", 2142, 561.571), ("diad_ring", "DIAD", 2144, 561.571)],
)
def test_load_lattice(lattice, name, n_elements, length):
def test_load_lattice(lattice, name, n_elements, length, request):
lattice = request.getfixturevalue(lattice)
assert len(lattice) == n_elements
assert lattice.name == name
assert (lattice.get_length() - length) < EPS


@pytest.mark.parametrize(
"lattice, n_bpms",
[(lazy_fixture("vmx_ring"), 173), (lazy_fixture("diad_ring"), 173)],
)
def test_get_pv_names(lattice, n_bpms):
@pytest.mark.parametrize("lattice, n_bpms", [("vmx_ring", 173), ("diad_ring", 173)])
def test_get_pv_names(lattice, n_bpms, request):
lattice = request.getfixturevalue(lattice)
bpm_x_pvs = lattice.get_element_pv_names("BPM", "x", handle="readback")
assert len(bpm_x_pvs) == n_bpms
for pv in bpm_x_pvs:
Expand All @@ -56,11 +51,9 @@ def test_get_pv_names(lattice, n_bpms):
assert re.match("SR.*HBPM.*SLOW:DISABLED", pv)


@pytest.mark.parametrize(
"lattice, n_bpms",
[(lazy_fixture("vmx_ring"), 173), (lazy_fixture("diad_ring"), 173)],
)
def test_load_bpms(lattice, n_bpms):
@pytest.mark.parametrize("lattice, n_bpms", [("vmx_ring", 173), ("diad_ring", 173)])
def test_load_bpms(lattice, n_bpms, request):
lattice = request.getfixturevalue(lattice)
bpms = lattice.get_elements("BPM")
bpm_fields = {
"x",
Expand All @@ -81,20 +74,16 @@ def test_load_bpms(lattice, n_bpms):
assert bpms[-1].cell == 24


@pytest.mark.parametrize(
"lattice, n_drifts",
[(lazy_fixture("vmx_ring"), 1308), (lazy_fixture("diad_ring"), 1311)],
)
def test_load_drift_elements(lattice, n_drifts):
@pytest.mark.parametrize("lattice, n_drifts", [("vmx_ring", 1308), ("diad_ring", 1311)])
def test_load_drift_elements(lattice, n_drifts, request):
lattice = request.getfixturevalue(lattice)
drifts = lattice.get_elements("DRIFT")
assert len(drifts) == n_drifts


@pytest.mark.parametrize(
"lattice, n_quads",
[(lazy_fixture("vmx_ring"), 248), (lazy_fixture("diad_ring"), 248)],
)
def test_load_quadrupoles(lattice, n_quads):
@pytest.mark.parametrize("lattice, n_quads", [("vmx_ring", 248), ("diad_ring", 248)])
def test_load_quadrupoles(lattice, n_quads, request):
lattice = request.getfixturevalue(lattice)
quads = lattice.get_elements("Quadrupole")
assert len(quads) == n_quads
for quad in quads:
Expand All @@ -105,21 +94,21 @@ def test_load_quadrupoles(lattice, n_quads):


@pytest.mark.parametrize(
"lattice, n_q1b, n_q1d",
[(lazy_fixture("vmx_ring"), 34, 12), (lazy_fixture("diad_ring"), 34, 12)],
"lattice, n_q1b, n_q1d", [("vmx_ring", 34, 12), ("diad_ring", 34, 12)]
)
def test_load_quad_family(lattice, n_q1b, n_q1d):
def test_load_quad_family(lattice, n_q1b, n_q1d, request):
lattice = request.getfixturevalue(lattice)
q1b = lattice.get_elements("Q1B")
assert len(q1b) == n_q1b
q1d = lattice.get_elements("Q1D")
assert len(q1d) == n_q1d


@pytest.mark.parametrize(
"lattice, n_correctors",
[(lazy_fixture("vmx_ring"), 173), (lazy_fixture("diad_ring"), 172)],
"lattice, n_correctors", [("vmx_ring", 173), ("diad_ring", 172)]
)
def test_load_correctors(lattice, n_correctors):
def test_load_correctors(lattice, n_correctors, request):
lattice = request.getfixturevalue(lattice)
hcm = lattice.get_elements("HSTR")
vcm = lattice.get_elements("VSTR")
assert len(hcm) == n_correctors
Expand All @@ -136,11 +125,9 @@ def test_load_correctors(lattice, n_correctors):
)


@pytest.mark.parametrize(
"lattice, n_squads",
[(lazy_fixture("vmx_ring"), 98), (lazy_fixture("diad_ring"), 98)],
)
def test_load_squads(lattice, n_squads):
@pytest.mark.parametrize("lattice, n_squads", [("vmx_ring", 98), ("diad_ring", 98)])
def test_load_squads(lattice, n_squads, request):
lattice = request.getfixturevalue(lattice)
squads = lattice.get_elements("SQUAD")
assert len(squads) == n_squads
for squad in squads:
Expand All @@ -150,21 +137,19 @@ def test_load_squads(lattice, n_squads):
assert re.match("SR.*SQ.*:SETI", device.sp_pv)


@pytest.mark.parametrize(
"lattice", (lazy_fixture("diad_ring"), lazy_fixture("vmx_ring"))
)
def test_cell(lattice):
@pytest.mark.parametrize("lattice", ["diad_ring", "vmx_ring"])
def test_cell(lattice, request):
lattice = request.getfixturevalue(lattice)
# there are squads in every cell
sq = lattice.get_elements("SQUAD")
assert sq[0].cell == 1
assert sq[-1].cell == 24


@pytest.mark.parametrize(
"lattice", (lazy_fixture("diad_ring"), lazy_fixture("vmx_ring"))
)
@pytest.mark.parametrize("lattice", ["diad_ring", "vmx_ring"])
@pytest.mark.parametrize("field", ("x", "y"))
def test_bpm_unitconv(lattice, field):
def test_bpm_unitconv(lattice, field, request):
lattice = request.getfixturevalue(lattice)
bpm = lattice.get_elements("BPM")[0]
uc = bpm._data_source_manager._uc[field]

Expand Down

0 comments on commit c32f154

Please sign in to comment.