class CrudCalibrationsTestCase(unittest.TestCase): def setUp(self): self.robot = Robot() self.robot.connect() self.plate = containers_load(self.robot, '96-flat', 'A1', 'plate') self.p200 = pipette.Pipette(self.robot, name="p200", axis="b") self.p200.delete_calibration_data() well = self.plate[0] pos = well.from_center(x=0, y=0, z=0, reference=self.plate) self.location = (self.plate, pos) well_deck_coordinates = well.center(well.get_deck()) dest = well_deck_coordinates + Vector(1, 2, 3) self.robot.move_head(x=dest['x'], y=dest['y'], z=dest['z']) self.p200.calibrate_position(self.location) def test_save_load_calibration_data(self): self.p200 = pipette.Pipette(self.robot, name="p200-diff", axis="b") self.assertDictEqual(self.p200.calibration_data, {}) self.p200 = pipette.Pipette(self.robot, name="p200", axis="a") self.p200.delete_calibration_data() self.assertDictEqual(self.p200.calibration_data, {}) self.p200 = pipette.Pipette(self.robot, name="p200", axis="b") expected_delta = {'delta': (1.0, 2.0, 3.0), 'type': '96-flat'} self.assertTrue('A1' in self.p200.calibration_data) actual = self.p200.calibration_data['A1']['children'] self.assertTrue('plate' in actual) actual = self.p200.calibration_data['A1']['children']['plate'] self.assertEquals(expected_delta, actual) def test_delete_calibrations_data(self): self.p200 = pipette.Pipette(self.robot, name="p200", axis="b") expected_delta = {'delta': (1.0, 2.0, 3.0), 'type': '96-flat'} self.assertTrue('A1' in self.p200.calibration_data) actual = self.p200.calibration_data['A1']['children'] self.assertTrue('plate' in actual) actual = self.p200.calibration_data['A1']['children']['plate'] self.assertEquals(expected_delta, actual) self.p200.delete_calibration_data() self.assertDictEqual(self.p200.calibration_data, {}) self.p200 = pipette.Pipette(self.robot, name="p200", axis="b") self.assertDictEqual(self.p200.calibration_data, {}) self.assertDictEqual( self.p200.positions, { 'top': 0.0101, 'bottom': 10.0101, 'blow_out': 12.0101, 'drop_tip': 14.0101 }) def test_delete_old_calibration_file(self): def test_file(file_name): calib_dir = environment.get_path('CALIBRATIONS_DIR') shutil.copyfile(os.path.join(os.path.dirname(__file__), file_name), os.path.join(calib_dir, 'calibrations.json')) instrument.Instrument()._read_calibrations() file = os.path.join(calib_dir, 'calibrations.json') with open(file) as f: calib_object = json.load(f) self.assertEquals(calib_object['version'], 1) test_file('data/calibrations.json') test_file('data/invalid_json.json')