def test_get_printout_data(self): kitinfo = [["xxx_pggwy", "96812490", "23577", ["000033914", "000033915"]], ["xxx_drcrv", "33422033", "56486", ["000033916", "000033917"]]] result = get_printout_data(kitinfo) for kit in kitinfo: self.assertIn("Sample Barcodes:\t%s" % ', '.join(kit[3]), result) self.assertIn("Kit ID:\t\t%s" % kit[0], result) self.assertIn("Password:\t\t%s" % kit[1], result) self.assertIn('http://www.microbio.me/AmericanGut', result) # test proper line break for lengthy barcode lists kitinfo = [["xxx_pggwy", "96812490", "23577", ["000033914", "000033915", "000033916", "000033917", "100033914", "100033915", "100033916", "100033917"]]] result = get_printout_data(kitinfo) for kit in kitinfo: self.assertIn("Sample Barcodes:\t%s" % ', '.join(kit[3][:5]), result) self.assertIn("\t\t\t%s" % ', '.join(kit[3][5:]), result)
def test_get_printout_data(self): kitinfo = [[ "xxx_pggwy", "96812490", "23577", ["000033914", "000033915"] ], ["xxx_drcrv", "33422033", "56486", ["000033916", "000033917"]]] result = get_printout_data(kitinfo) for kit in kitinfo: self.assertIn("Sample Barcodes:\t%s" % ', '.join(kit[3]), result) self.assertIn("Kit ID:\t\t%s" % kit[0], result) self.assertIn("Password:\t\t%s" % kit[1], result) self.assertIn('http://www.microbio.me/AmericanGut', result) # test proper line break for lengthy barcode lists kitinfo = [[ "xxx_pggwy", "96812490", "23577", [ "000033914", "000033915", "000033916", "000033917", "100033914", "100033915", "100033916", "100033917" ] ]] result = get_printout_data(kitinfo) for kit in kitinfo: self.assertIn("Sample Barcodes:\t%s" % ', '.join(kit[3][:5]), result) self.assertIn("\t\t\t%s" % ', '.join(kit[3][5:]), result)
def post(self): kitinfo = loads(self.get_argument('kitinfo')) fields = self.get_argument('fields').split(',') table = ['\t'.join(fields)] table.extend(['\t'.join(map(str, kit)) for kit in kitinfo]) kit_zip = InMemoryZip() kit_zip.append('kit_printouts.txt', get_printout_data(kitinfo)).append( 'kit_table.txt', '\n'.join(table)) # write out zip file self.add_header('Content-type', 'application/octet-stream') self.add_header('Content-Transfer-Encoding', 'binary') self.add_header('Accept-Ranges', 'bytes') self.add_header('Content-Encoding', 'none') self.add_header('Content-Disposition', 'attachment; filename=kitinfo.zip') self.write(kit_zip.write_to_buffer()) self.flush() self.finish()