def test_parse_entity(self): l = ReagentLot(uri=self.lims.get_uri('reagentkits', 'r1'), lims=self.lims) with patch('requests.Session.get', return_value=Mock(content=self.reagentlot_xml, status_code=200)): assert l.uri assert l.name == 'kitname' assert l.lot_number == '100' assert l.status == 'ARCHIVED'
def test_create_entity(self): with patch('requests.Session.get', return_value=Mock(content=self.reagentkit_xml, status_code=200)): r = ReagentKit(uri=self.lims.get_uri('reagentkits', 'r1'), lims=self.lims) with patch('genologics.lims.requests.post', return_value=Mock(content=self.reagentlot_xml, status_code=201)) as patch_post: l = ReagentLot.create( self.lims, reagent_kit=r, name='kitname', lot_number='100', expiry_date='2020-05-01', status='ACTIVE' ) assert l.uri assert l.name == 'kitname' assert l.lot_number == '100'
def _run(self): run_parameters = find_run_parameters(self.run_name) for name, lot in get_reagent_name_from_run_parameter(run_parameters): reagent_lots = self.lims.get_reagent_lots(number=lot) if len(reagent_lots) == 1: reagent_lot = reagent_lots[0] if reagent_lot.status != 'active': reagent_lot.status = 'active' reagent_lot.expiry_date = time.strftime('%Y-%m,-%d') reagent_lot.put() else: reagent_kits = self.lims.get_reagent_kits(name=reagent_kit_map[name]) if len(reagent_kits) != 1: raise Exception('Found %s reagent kits for name %s' % (len(reagent_kits), reagent_kit_map[name])) reagent_lot = ReagentLot.create(self.lims, reagent_kit=reagent_kits[0], name=name, lot_number=lot, expiry_date=time.strftime('%Y-%m,-%d'), status='active') print('Create reagent %s: %s' % (name, lot))