def test_post_kit(self): self.mock_login_admin() search_term = 'tst_zpdIN' response = self.post('/ag_search/', {'search_term': search_term}) self.assertEqual(response.code, 200) for kit_id in db.search_kits(search_term): for kit in db.get_kit_info_by_login(kit_id): for field in kit: if (field != 'ag_kit_id') and (field != 'ag_login_id'): self.assertIn(str(kit[field]), response.body)
def post(self): term = self.get_argument('search_term') results = {} # search participant info logins = db.search_participant_info(term) results = set(logins) # search kit info and add to resluts logins = db.search_kits(term) results = results | set(logins) # search barcode and add to results logins = db.search_barcodes(term) results = results | set(logins) # search handout kits handouts = db.search_handout_kits(term) # now take the ag_login_ids and collect the information to display display_results = [] # list of dictionatries for login in results: login_display = {} login_display['login_info'] = db.get_login_info(login) login_display['humans'] = db.getHumanParticipants( login) login_display['animals'] = db.getAnimalParticipants( login) login_display['kit'] = db.get_kit_info_by_login(login) for kit in login_display['kit']: barcode_info = {} ag_barcodes = db.get_barcode_info_by_kit_id( kit['ag_kit_id']) barcode_info = {} for ag_barcode in ag_barcodes: barcode_info[ag_barcode['barcode']] = {} barcode_info[ag_barcode['barcode']]['ag_info'] = ag_barcode lab_barcode_info = db.get_barcode_details( ag_barcode['barcode']) plate = db.get_plate_for_barcode( ag_barcode['barcode']) barcode_info[ag_barcode['barcode']]['barcode_info'] = \ lab_barcode_info barcode_info[ag_barcode['barcode']]['plate'] = plate kit['barcode_info'] = barcode_info display_results.append(login_display) # now render the page self.render("ag_search.html", results=display_results, handouts=handouts, currentuser=self.current_user)
def test_search_kits(self): # obtain current test data from DB ag_login_id = 'd8592c74-7cf9-2135-e040-8a80115d6401' kits = db.get_kit_info_by_login(ag_login_id) # check if ag_login_id is regain with supplied_kit_id obs = db.search_kits(kits[0]['supplied_kit_id']) self.assertEqual([ag_login_id], obs) # check if kit_id is found by search obs = db.search_kits('e1934dfe-8537-6dce-e040-8a80115d2da9') self.assertEqual(['e1934ceb-6e92-c36a-e040-8a80115d2d64'], obs) # check that a non existing kit is not found obs = db.search_kits('990001124') self.assertEqual([], obs)
def test_post_barcode(self): self.mock_login_admin() search_term = '000028538' response = self.post('/ag_search/', {'search_term': search_term}) self.assertEqual(response.code, 200) for barcode in db.search_barcodes(search_term): kit_id = db.get_kit_info_by_login(barcode)[0]['ag_kit_id'] for sample in db.get_barcode_info_by_kit_id(kit_id): for field in sample: if sample[field] is not None: if (field == 'ag_kit_id') or ( field == 'ag_kit_barcode_id'): self.assertNotIn(sample[field], response.body) else: self.assertIn(sample[field], response.body)
def test_post_barcode(self): self.mock_login_admin() search_term = '000028538' response = self.post('/ag_search/', {'search_term': search_term}) self.assertEqual(response.code, 200) for barcode in db.search_barcodes(search_term): kit_id = db.get_kit_info_by_login(barcode)[0]['ag_kit_id'] for sample in db.get_barcode_info_by_kit_id(kit_id): for field in sample: if sample[field] is not None: if (field == 'ag_kit_id') or \ (field == 'ag_kit_barcode_id'): self.assertNotIn(sample[field], response.body) else: exp = xhtml_escape_recursive(sample[field]) self.assertIn(str(exp), response.body)