예제 #1
0
    def test_search_barcodes(self):
        obs = db.search_barcodes('000001124')
        self.assertEqual(obs, ['d8592c74-7c27-2135-e040-8a80115d6401'])

        ag_login_id = "d8592c74-9491-2135-e040-8a80115d6401"
        names = db.ut_get_participant_names_from_ag_login_id(ag_login_id)

        obs = []
        for name in names:
            obs.extend(db.search_barcodes(name))
        self.assertTrue(ag_login_id in obs)
예제 #2
0
    def test_search_barcodes(self):
        obs = db.search_barcodes('000001124')
        self.assertEqual(obs, ['d8592c74-7c27-2135-e040-8a80115d6401'])

        ag_login_id = "d8592c74-9491-2135-e040-8a80115d6401"
        names = db.ut_get_participant_names_from_ag_login_id(ag_login_id)

        obs = []
        for name in names:
            obs.extend(db.search_barcodes(name))
        self.assertTrue(ag_login_id in obs)
예제 #3
0
    def test_search_barcodes(self):
        obs = db.search_barcodes('000001124')
        self.assertEqual(obs, ['d8592c74-7c27-2135-e040-8a80115d6401'])

        obs = db.search_barcodes('REMOVED-8')
        exp = ['d8592c74-7da1-2135-e040-8a80115d6401',
               '00711b0a-67d6-0fed-e050-8a800c5d7570',
               'd8592c74-9491-2135-e040-8a80115d6401',
               'f37dc99e-2241-3a4f-e040-8a80115d1694',
               'e025e238-4529-77a9-e040-8a80115d503f',
               'e76468db-82ca-bf84-e040-8a80115d55dc',
               'fa66366c-12f2-50aa-e040-8a800c5d6584',
               'df703c65-b700-401c-e040-8a80115d46ed',
               'e02a84fb-8db9-1e6a-e040-8a80115d6e16']
        self.assertEqual(obs, exp)
예제 #4
0
    def test_search_barcodes(self):
        obs = db.search_barcodes("000001124")
        self.assertEqual(obs, ["d8592c74-7c27-2135-e040-8a80115d6401"])

        obs = db.search_barcodes("REMOVED-8")
        exp = [
            "d8592c74-7da1-2135-e040-8a80115d6401",
            "00711b0a-67d6-0fed-e050-8a800c5d7570",
            "d8592c74-9491-2135-e040-8a80115d6401",
            "f37dc99e-2241-3a4f-e040-8a80115d1694",
            "e025e238-4529-77a9-e040-8a80115d503f",
            "e76468db-82ca-bf84-e040-8a80115d55dc",
            "fa66366c-12f2-50aa-e040-8a800c5d6584",
            "df703c65-b700-401c-e040-8a80115d46ed",
            "e02a84fb-8db9-1e6a-e040-8a80115d6e16",
        ]
        self.assertEqual(obs, exp)
예제 #5
0
    def test_search_barcodes(self):
        obs = db.search_barcodes('000001124')
        self.assertEqual(obs, ['d8592c74-7c27-2135-e040-8a80115d6401'])

        obs = db.search_barcodes('REMOVED-8')
        exp = [
            'd8592c74-7da1-2135-e040-8a80115d6401',
            '00711b0a-67d6-0fed-e050-8a800c5d7570',
            'd8592c74-9491-2135-e040-8a80115d6401',
            'f37dc99e-2241-3a4f-e040-8a80115d1694',
            'e025e238-4529-77a9-e040-8a80115d503f',
            'e76468db-82ca-bf84-e040-8a80115d55dc',
            'fa66366c-12f2-50aa-e040-8a800c5d6584',
            'df703c65-b700-401c-e040-8a80115d46ed',
            'e02a84fb-8db9-1e6a-e040-8a80115d6e16'
        ]
        self.assertEqual(obs, exp)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)