X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=blobdiff_plain;f=htsworkflow%2Fpipelines%2Ftest%2Ftest_retrive_config.py;h=cb5650191e79f886da243c9837bcfa61291fbb1f;hp=f655779bbb6edaf2c00a56e66284331f19215b4b;hb=bc27b813d0cdd3513323434405ee2ec5126490e5;hpb=0123277f86af843d47170d56d217f45e7d7cb4a6 diff --git a/htsworkflow/pipelines/test/test_retrive_config.py b/htsworkflow/pipelines/test/test_retrive_config.py index f655779..cb56501 100644 --- a/htsworkflow/pipelines/test/test_retrive_config.py +++ b/htsworkflow/pipelines/test/test_retrive_config.py @@ -1,15 +1,20 @@ +import csv import os import re +from StringIO import StringIO try: import json except ImportError, e: import simplejson as json - + from django.test import TestCase from htsworkflow.frontend.auth import apidata -from htsworkflow.pipelines.retrieve_config import format_gerald_config, getCombinedOptions +from htsworkflow.pipelines.retrieve_config import \ + format_gerald_config, \ + getCombinedOptions, \ + save_sample_sheet class RetrieveTestCases(TestCase): fixtures = ['test_flowcells.json'] @@ -20,13 +25,11 @@ class RetrieveTestCases(TestCase): def test_format_gerald(self): flowcell_request = self.client.get('/experiments/config/FC12150/json', apidata) self.failUnlessEqual(flowcell_request.status_code, 200) - - print dir(flowcell_request) flowcell_info = json.loads(flowcell_request.content) - options = getCombinedOptions(['-f','FC12150','-g',os.getcwd()]) + options = getCombinedOptions(['-f','FC12150','-g',os.getcwd()]) genome_map = {u'Homo sapiens': '/tmp/hg18' } - + config = format_gerald_config(options, flowcell_info, genome_map) config_lines = config.split('\n') lane3 = [ line for line in config_lines if re.search('Lane3', line) ] @@ -39,7 +42,31 @@ class RetrieveTestCases(TestCase): sequencing = [ line for line in config_lines if re.search('sequence_pair', line) ] self.failUnlessEqual(len(sequencing), 2) - - - + def test_format_sample_sheet(self): + fcid = '42JU1AAXX' + url = '/experiments/config/%s/json' % (fcid,) + flowcell_request = self.client.get(url, apidata) + self.failUnlessEqual(flowcell_request.status_code, 200) + flowcell_info = json.loads(flowcell_request.content) + + options = getCombinedOptions(['-f',fcid,'-g',os.getcwd(),]) + + output = StringIO() + save_sample_sheet(output, options, flowcell_info) + output.seek(0) + sheet = list(csv.DictReader(output)) + expected = [{'SampleProject': '12044_index1', 'Index': 'ATCACG'}, + {'SampleProject': '12044_index2', 'Index': 'CGATGT'}, + {'SampleProject': '12044_index3', 'Index': 'TTAGGC'}, + {'SampleProject': '11045_index1', 'Index': 'ATCACG'}, + ] + for i in range(4): + self.assertEqual(sheet[i]['SampleProject'], + expected[i]['SampleProject']) + self.assertEqual(sheet[i]['Index'], + expected[i]['Index']) + self.assertEqual(sheet[i]['FCID'], fcid) + self.assertEqual(sheet[i]['Lane'], '3') + +