class StateTestCase(unittest.TestCase): def setUp(self): self.robot = Robot() self.robot.home() self.trash = containers_load(self.robot, 'point', 'A1') self.tiprack1 = containers_load(self.robot, 'tiprack-10ul', 'B2') self.tiprack2 = containers_load(self.robot, 'tiprack-10ul', 'B3') self.plate = containers_load(self.robot, '96-flat', 'A2') self.p200 = pipette.Pipette( self.robot, trash_container=self.trash, tip_racks=[self.tiprack1, self.tiprack2], max_volume=200, min_volume=10, # These are variable axis="a", channels=1) self.p200.aspirate(100, self.plate[0]).dispense() def test_initial_state(self): s = state.get_state(self.robot) expected = [{ 'axis': 'a', 'blow_out': 12.0101, 'bottom': 10.0101, 'calibrated': False, 'channels': 1, 'drop_tip': 14.0101, 'label': 'Pipette', 'max_volume': 200, 'placeables': [{ 'calibrated': False, 'label': '96-flat', 'slot': 'A2', 'type': '96-flat' }], 'top': 0.0101 }] self.assertEqual(s, expected)
class MagbeadTest(unittest.TestCase): def setUp(self): self.robot = Robot() options = { 'limit_switches': False } self.robot.connect(options=options) self.robot.home() self.plate = containers_load(self.robot, '96-flat', 'A2') self.magbead = magbead.Magbead( self.robot, mosfet=0, container=self.plate ) self.robot._driver.set_mosfet = mock.Mock() self.robot._driver.wait = mock.Mock() def tearDown(self): del self.robot def test_magbead_engage(self): self.magbead.engage() calls = self.robot._driver.set_mosfet.mock_calls expected = [mock.call(0, True)] self.assertEquals(calls, expected) def test_magbead_disengage(self): self.magbead.engage() self.magbead.disengage() calls = self.robot._driver.set_mosfet.mock_calls expected = [mock.call(0, True), mock.call(0, False)] self.assertEquals(calls, expected) def test_magbead_delay(self): self.magbead.engage() self.magbead.delay(2) self.magbead.disengage() self.magbead.delay(minutes=2) calls = self.robot._driver.set_mosfet.mock_calls expected = [mock.call(0, True), mock.call(0, False)] self.assertEquals(calls, expected) calls = self.robot._driver.wait.mock_calls expected = [mock.call(2), mock.call(120)] self.assertEquals(calls, expected)
def setup_robot(): robot = Robot() for port in list_of_ports: trycon(robot, port) if (robot.is_simulating()): print("no connection made") else: robot.home() robot._driver.speeds['z'] = 1200 for (axis, pipette) in robot.get_instruments(): pipette.load_persisted_data() try: yield robot finally: robot.disconnect()
class PerformanceTest(unittest.TestCase): def setUp(self): self.events = [] self.robot = Robot() def protocol(self): self.robot.get_serial_ports_list() self.robot.home() tiprack = containers_load( self.robot, 'tiprack-200ul', # container type 'A1', # slot 'tiprack' # user-defined name ) plate = containers_load(self.robot, '96-flat', 'B1', 'plate') trash = containers_load(self.robot, 'point', 'C2', 'trash') trough = containers_load(self.robot, 'trough-12row', 'B2', 'trough') p200 = pipette.Pipette(self.robot, name="p200", trash_container=trash, tip_racks=[tiprack], max_volume=200, min_volume=0.5, axis="b", channels=1) calibration_data = """ { "b": { "blowout": 28.0, "bottom": 26.0, "droptip": 32.0, "resting": 0, "theContainers": { "plate": { "rel_x": 181.696, "rel_y": 0.700999999999965, "rel_z": 9.600999999999999, "x": 202.195, "y": 370.304, "z": 125.7 }, "tiprack": { "rel_x": 0.0, "rel_y": 0.0, "rel_z": 0.0, "x": 20.499, "y": 369.603, "z": 116.099 }, "trough": { "rel_x": 0.0, "rel_y": 0.0, "rel_z": 0.0, "x": 20.499, "y": 269.603, "z": 116.099 }, "trash": { "rel_x": 212.701, "rel_y": -200.801, "rel_z": -58.399, "x": 233.2, "y": 171.305, "z": 57.7 } }, "tip_rack_origin": "tiprack", "tip_racks": [ { "container": "tiprack" } ], "top": 13.0, "trash_container": { "container": "trash" }, "volume": 200 } } """ import_calibration_json(calibration_data, self.robot, True) self.robot.clear_commands() # distribute p200.pick_up_tip(tiprack[0]) p200.aspirate(96 * 2, trough[0]) for i in range(96): p200.dispense(2, plate[i]).touch_tip() p200.drop_tip(tiprack[0]) p200.pick_up_tip(tiprack[1]) for i in range(96): p200.aspirate(2, plate[95 - i]) p200.dispense(trough[0]) p200.drop_tip(tiprack[1]) def log(self, info): self.events.append(info) def test_performance(self): """ # import time # from opentrons.util.trace import EventBroker EventBroker.get_instance().add(self.log) start = time.process_time() self.protocol() finish = time.process_time() self.assertTrue(finish - start < 1.0) """ pass
class PerformanceTest(unittest.TestCase): def setUp(self): self.events = [] self.robot = Robot() def protocol(self): self.robot.get_serial_ports_list() self.robot.home() tiprack = containers_load( self.robot, 'tiprack-200ul', # container type 'A1', # slot 'tiprack' # user-defined name ) plate = containers_load( self.robot, '96-flat', 'B1', 'plate' ) trash = containers_load( self.robot, 'point', 'C2', 'trash' ) trough = containers_load( self.robot, 'trough-12row', 'B2', 'trough' ) p200 = pipette.Pipette( self.robot, name="p200", trash_container=trash, tip_racks=[tiprack], min_volume=0.5, axis="b", channels=1 ) self.robot.clear_commands() # distribute p200.pick_up_tip(tiprack[0]) p200.aspirate(96 * 2, trough[0]) for i in range(96): p200.dispense(2, plate[i]).touch_tip() p200.drop_tip(tiprack[0]) p200.pick_up_tip(tiprack[1]) for i in range(96): p200.aspirate(2, plate[95 - i]) p200.dispense(trough[0]) p200.drop_tip(tiprack[1]) def log(self, info): self.events.append(info)