adapt to python2 returning lists and python3 iterators
[htsworkflow.git] / htsworkflow / pipelines / test / test_retrieve_config.py
index 7ca87905d623e0ff6ce0c5c880851a283490176f..4ec9d3e755a9ac99cbde2330237f69c70e76fd87 100644 (file)
@@ -1,7 +1,7 @@
 import csv
 import os
 import re
-from StringIO import StringIO
+from six.moves import StringIO
 
 try:
     import json
@@ -9,6 +9,7 @@ except ImportError as e:
     import simplejson as json
 
 from django.test import TestCase
+from django.utils.encoding import smart_text
 
 from samples.samples_factory import LibraryFactory, LibraryTypeFactory, \
     MultiplexIndexFactory
@@ -33,7 +34,7 @@ class RetrieveTestCases(TestCase):
         flowcell_request = self.client.get('/experiments/config/FC12150/json',
                                            apidata)
         self.failUnlessEqual(flowcell_request.status_code, 200)
-        flowcell_info = json.loads(flowcell_request.content)['result']
+        flowcell_info = json.loads(smart_text(flowcell_request.content))['result']
 
         options = getCombinedOptions(['-f','FC12150','-g',os.getcwd()])
         genome_map = {library.library_species.scientific_name: '/tmp/build' }
@@ -71,7 +72,7 @@ class RetrieveTestCases(TestCase):
         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)['result']
+        flowcell_info = json.loads(smart_text(flowcell_request.content))['result']
 
         options = getCombinedOptions(['-f',fcid,'-g',os.getcwd(),])
 
@@ -80,22 +81,22 @@ class RetrieveTestCases(TestCase):
 
         output.seek(0)
         sheet = list(csv.DictReader(output))
-        name1 = library1.id + '_index' + library1.index_sequences().keys()[0]
-        name2 = library2.id + '_index' + library2.index_sequences().keys()[0]
+        name1 = library1.id + '_index' + next(iter(library1.index_sequences()))
+        name2 = library2.id + '_index' + next(iter(library2.index_sequences()))
         expected = [{'SampleProject': name1,
-                     'Index': library1.index_sequences().values()[0],
+                     'Index': next(iter(library1.index_sequences().values())),
                      'Lane': '1',
                      },
                     {'SampleProject': name2,
-                     'Index': library2.index_sequences().values()[0],
+                     'Index': next(iter(library2.index_sequences().values())),
                      'Lane': '1',
                      },
                     {'SampleProject': name1,
-                     'Index': library1.index_sequences().values()[0],
+                     'Index': next(iter(library1.index_sequences().values())),
                      'Lane': '2',
                      },
                     {'SampleProject': name2,
-                     'Index': library2.index_sequences().values()[0],
+                     'Index': next(iter(library2.index_sequences().values())),
                      'Lane': '2',
                      },
                     ]