Exemplo n.º 1
0
    def test_get(self):
        self.mock_login_admin()

        # check that error is raised for unknown barcode
        response = self.get("/ag_edit_barcode/", {"barcode": "unknown"})
        self.assertEqual(response.code, 500)

        # make sure return code 400 is returned, if barcode is not given
        response = self.get("/ag_edit_barcode/", {})
        self.assertEqual(response.code, 400)

        # check if page is rendered properly
        barcode = db.get_barcodes_with_results()[0]
        response = self.get("/ag_edit_barcode/", {"barcode": barcode})
        self.assertEqual(response.code, 200)
        details = db.getAGBarcodeDetails(barcode)
        l = db.search_kits(details["ag_kit_id"])[0]
        self.assertIn('name="barcode" id="barcode" value="%s"' % barcode, response.body)
        for s in db.human_sites:
            if details["site_sampled"] == str(s):
                self.assertIn('<option value="%s" selected>%s</option>' % (str(s), str(s)), response.body)
            else:
                self.assertIn('<option value="%s">%s</option>' % (str(s), str(s)), response.body)
        for e in db.general_sites:
            if details["environment_sampled"] == str(e):
                self.assertIn('<option value="%s" selected>%s</option>' % (str(e), str(e)), response.body)
            else:
                self.assertIn('<option value="%s">%s</option>' % (str(e), str(e)), response.body)
        for p in db.getHumanParticipants(l) + db.getAnimalParticipants(l):
            if details["participant_name"] == str(p):
                self.assertIn('<option value="%s" selected>%s</option>' % (str(p), str(p)), response.body)
            else:
                self.assertIn('<option value="%s" >%s</option>' % (str(p), str(p)), response.body)
Exemplo n.º 2
0
 def get(self):
     barcode = self.get_argument('barcode', None)
     if barcode is not None:
         details = db.getAGBarcodeDetails(barcode)
         ag_login_id = db.search_kits(details['ag_kit_id'])[0]
         site_sampled = db.human_sites
         environment_sampled = db.general_sites
         participants = db.getHumanParticipants(ag_login_id) + \
             db.getAnimalParticipants(ag_login_id)
         self.render("ag_edit_barcode.html", response=None, barcode=barcode,
                     sites_sampled=site_sampled, details=details,
                     environments_sampled=environment_sampled,
                     participants=participants,
                     currentuser=self.current_user)
Exemplo n.º 3
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)
Exemplo n.º 4
0
 def get(self):
     barcode = self.get_argument('barcode', None)
     if barcode is not None:
         details = db.getAGBarcodeDetails(barcode)
         ag_login_id = db.search_kits(details['ag_kit_id'])[0]
         site_sampled = db.human_sites
         environment_sampled = db.general_sites
         participants = db.getHumanParticipants(ag_login_id) + \
             db.getAnimalParticipants(ag_login_id)
         self.render("ag_edit_barcode.html", response=None, barcode=barcode,
                     sites_sampled=site_sampled, details=details,
                     environments_sampled=environment_sampled,
                     participants=participants,
                     currentuser=self.current_user)
     else:
         self.set_status(400)
Exemplo n.º 5
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)
Exemplo n.º 6
0
 def test_getHumanParticipantsNotPresent(self):
     i = '00000000-0000-0000-0000-000000000000'
     res = db.getHumanParticipants(i)
     self.assertEqual(res, [])
Exemplo n.º 7
0
 def test_getHumanParticipants(self):
     i = "d8592c74-9694-2135-e040-8a80115d6401"
     res = db.getHumanParticipants(i)
     # we can't compare to scrubbed participant names, thus we only check
     # number of names.
     self.assertTrue(len(res) >= 4)
Exemplo n.º 8
0
 def test_getHumanParticipantsNotPresent(self):
     i = "00000000-0000-0000-0000-000000000000"
     res = db.getHumanParticipants(i)
     self.assertEqual(res, [])
Exemplo n.º 9
0
 def test_getHumanParticipants(self):
     i = "d8592c74-9694-2135-e040-8a80115d6401"
     res = db.getHumanParticipants(i)
     exp = ["REMOVED-2", "REMOVED-0", "REMOVED-3", "REMOVED-1"]
     self.assertItemsEqual(res, exp)
Exemplo n.º 10
0
 def test_getHumanParticipants(self):
     i = "d8592c74-9694-2135-e040-8a80115d6401"
     res = db.getHumanParticipants(i)
     exp = ['REMOVED-2', 'REMOVED-0', 'REMOVED-3', 'REMOVED-1']
     self.assertItemsEqual(res, exp)
Exemplo n.º 11
0
 def test_getHumanParticipants(self):
     i = "d8592c74-9694-2135-e040-8a80115d6401"
     res = db.getHumanParticipants(i)
     # we can't compare to scrubbed participant names, thus we only check
     # number of names.
     self.assertTrue(len(res) >= 4)