Skip to content

Commit

Permalink
Merge 92a0d9b into d419936
Browse files Browse the repository at this point in the history
  • Loading branch information
dhakim87 committed Apr 22, 2020
2 parents d419936 + 92a0d9b commit 2e651de
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 11 deletions.
18 changes: 7 additions & 11 deletions microsetta_private_api/admin/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,23 +104,19 @@ def test_search_barcode(self):
self.assertIsNone(diag['account'])
self.assertIsNone(diag['source'])
self.assertIsNotNone(diag['sample'])
self.assertGreater(len(diag['barcode_info']), 0)
self.assertGreater(len(diag['barcode_info']['projects']), 0)

diag = admin_repo.retrieve_diagnostics_by_barcode('000033903')
self.assertIsNotNone(diag['barcode'])
self.assertIsNone(diag['account'])
self.assertIsNone(diag['source'])
self.assertIsNone(diag['sample'])
self.assertGreater(len(diag['barcode_info']), 0)
self.assertGreater(len(diag['barcode_info']['projects']), 0)

# Uhh, should this return a 404 not found or just an empty
# diagnostic object...?
diag = admin_repo.retrieve_diagnostics_by_barcode('NotABarcode :D')
self.assertIsNotNone(diag['barcode'])
self.assertIsNone(diag['account'])
self.assertIsNone(diag['source'])
self.assertIsNone(diag['sample'])
self.assertEqual(len(diag['barcode_info']), 0)
self.assertIsNone(diag)

def test_create_kits(self):
with Transaction() as t:
Expand Down Expand Up @@ -203,7 +199,7 @@ def test_scan_barcode(self):
admin_repo = AdminRepo(t)

diag = admin_repo.retrieve_diagnostics_by_barcode(TEST_BARCODE)
prestatus = diag['barcode_info'][0]['status']
prestatus = diag['barcode_info']['status']

admin_repo.scan_barcode(
TEST_BARCODE,
Expand All @@ -214,11 +210,11 @@ def test_scan_barcode(self):
)

diag = admin_repo.retrieve_diagnostics_by_barcode(TEST_BARCODE)
self.assertEqual(diag['barcode_info'][0]['technician_notes'],
self.assertEqual(diag['barcode_info']['technician_notes'],
TEST_NOTES)
self.assertEqual(diag['barcode_info'][0]['sample_status'],
self.assertEqual(diag['barcode_info']['sample_status'],
TEST_STATUS)
self.assertEqual(diag['barcode_info'][0]['status'],
self.assertEqual(diag['barcode_info']['status'],
prestatus)

with self.assertRaises(NotFound):
Expand Down
23 changes: 23 additions & 0 deletions microsetta_private_api/repo/admin_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,29 @@ def retrieve_diagnostics_by_barcode(self, sample_barcode, grab_kit=True):
# How to unwrap a psycopg2 DictRow. I feel dirty.
barcode_info = [{k: v for k, v in x.items()}
for x in barcode_info] # Get Inceptioned!!

# Collapse info from joined project_barcode and project tables
# into array within barcode_info
if barcode_info:
first = barcode_info[0]
first['projects'] = [
{
'project_id': r['project_id'],
'project': r['project']
}
for r in barcode_info]
del first['project_id']
del first['project']
barcode_info = first
else:
barcode_info = None

if account is None and \
source is None and \
sample is None and \
barcode_info is None:
return None

diagnostic = {
"barcode": sample_barcode,
"account": account,
Expand Down

0 comments on commit 2e651de

Please sign in to comment.