Skip to content

Commit 7ba4fcc

Browse files
committed
some tests
1 parent bce4852 commit 7ba4fcc

File tree

2 files changed

+56
-5
lines changed

2 files changed

+56
-5
lines changed

pylabrobot/plate_reading/byonoy.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pylabrobot.resources import Resource, ResourceHolder, PlateHolder, Coordinate
44

55

6-
def byonoy_absorbance_adapter(name: str) -> ResourceHolder:
6+
def byonoy_luminescence_adapter(name: str) -> ResourceHolder:
77
return ResourceHolder(
88
name=name,
99
size_x=127.76, # measured
@@ -17,7 +17,7 @@ def byonoy_absorbance_adapter(name: str) -> ResourceHolder:
1717
)
1818

1919

20-
class _ByonoyPlateHolder(PlateHolder):
20+
class _ByonoyAbsorbanceReaderPlateHolder(PlateHolder):
2121
"""Custom plate holder that checks if the reader sits on the parent base.
2222
This check is used to prevent crashes (moving plate onto holder while reader is on the base)."""
2323

@@ -69,7 +69,7 @@ def __init__(self, name, rotation = None, category = None, model = None, barcode
6969
size_z=27.7,
7070
)
7171

72-
self.plate_holder = _ByonoyPlateHolder(
72+
self.plate_holder = _ByonoyAbsorbanceReaderPlateHolder(
7373
name=self.name + "_plate_holder",
7474
size_x=127.76,
7575
size_y=85.59,
@@ -97,7 +97,7 @@ def __init__(self, name, rotation = None, category = None, model = None, barcode
9797
self.assign_child_resource(self.reader_holder, location=Coordinate.zero())
9898

9999
def assign_child_resource(self, resource: Resource, location: Coordinate, reassign = True):
100-
if isinstance(resource, _ByonoyPlateHolder):
100+
if isinstance(resource, _ByonoyAbsorbanceReaderPlateHolder):
101101
if self.plate_holder._byonoy_base is not None:
102102
raise ValueError("ByonoyBase can only have one plate holder assigned.")
103103
self.plate_holder._byonoy_base = self
@@ -110,7 +110,7 @@ def check_can_drop_resource_here(self, resource: Resource) -> None:
110110
)
111111

112112

113-
def byonoy_absorbance96_base_and_reader(name: str, assign = True) -> Tuple[ByonoyBase, PlateReader]:
113+
def byonoy_luminescence96_base_and_reader(name: str, assign = True) -> Tuple[ByonoyBase, PlateReader]:
114114
"""Creates a ByonoyBase and a PlateReader instance."""
115115
byonoy_base = ByonoyBase(name=name + "_base")
116116
reader = PlateReader(
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import unittest
2+
import unittest.mock
3+
from pylabrobot.plate_reading.byonoy import byonoy_luminescence96_base_and_reader, byonoy_luminescence_adapter
4+
from pylabrobot.resources import Coordinate, CellVis_96_wellplate_350uL_Fb, PLT_CAR_L5_DWP
5+
from pylabrobot.liquid_handling import LiquidHandler, LiquidHandlerBackend, LiquidHandlerChatterboxBackend
6+
from pylabrobot.resources import STARDeck
7+
8+
9+
class ByonoyResourceTests(unittest.IsolatedAsyncioTestCase):
10+
async def asyncSetUp(self):
11+
self.base, self.reader = byonoy_luminescence96_base_and_reader(name="byonoy_test", assign=True)
12+
self.adapter = byonoy_luminescence_adapter(name="byonoy_test_adapter")
13+
14+
# self.lh = LiquidHandler(deck=STARDeck(), backend=unittest.mock.Mock(spec=LiquidHandlerBackend))
15+
self.lh = LiquidHandler(deck=STARDeck(), backend=LiquidHandlerChatterboxBackend())
16+
self.plate_carrier = PLT_CAR_L5_DWP(name="plate_carrier")
17+
self.plate_carrier[1] = self.adapter
18+
self.lh.deck.assign_child_resource(self.plate_carrier, rails=28)
19+
self.adapter.assign_child_resource(self.base)
20+
self.plate_carrier[2] = self.plate = CellVis_96_wellplate_350uL_Fb(name="plate")
21+
22+
async def test_move_reader_to_base(self):
23+
# move reader to deck
24+
await self.lh.move_resource(self.reader, to=Coordinate(x=400, y=209.995, z=100))
25+
26+
# move reader to base
27+
await self.lh.move_resource(
28+
self.reader,
29+
self.base.reader_holder,
30+
pickup_distance_from_top=7.45,
31+
)
32+
assert self.reader.get_absolute_location() == Coordinate(x=706.48, y=162.145, z=204.38)
33+
34+
async def test_move_plate_to_base(self):
35+
self.reader.unassign()
36+
await self.lh.move_resource(
37+
self.plate,
38+
self.base.plate_holder,
39+
)
40+
assert self.plate.get_absolute_location() == Coordinate(
41+
x=711.6,
42+
y=167.2,
43+
z=221.42,
44+
)
45+
46+
async def test_move_plate_to_base_when_reader_present(self):
47+
with self.assertRaises(RuntimeError):
48+
await self.lh.move_resource(
49+
self.plate,
50+
self.base.plate_holder,
51+
)

0 commit comments

Comments
 (0)