From 8acb097028da694df7e9b7c071088573fc030b8b Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Tue, 14 Oct 2014 18:00:46 +0200
Subject: [PATCH] Correctly handle batch job input and output encodings

---
 mutalyzer/File.py           | 206 +++++++++++++++++++++++-------------
 mutalyzer/Scheduler.py      |  17 +--
 mutalyzer/services/rpc.py   |  10 +-
 mutalyzer/website/views.py  |   6 +-
 requirements.txt            |   1 +
 tests/data/batch_input.ods  | Bin 0 -> 9175 bytes
 tests/data/batch_input.sxc  | Bin 0 -> 9036 bytes
 tests/data/batch_input.xls  | Bin 0 -> 6656 bytes
 tests/data/batch_input.xlsx | Bin 0 -> 6536 bytes
 tests/data/image.zip        | Bin 0 -> 87562 bytes
 tests/test_scheduler.py     |  93 ++++++++++++++--
 11 files changed, 237 insertions(+), 96 deletions(-)
 create mode 100644 tests/data/batch_input.ods
 create mode 100644 tests/data/batch_input.sxc
 create mode 100644 tests/data/batch_input.xls
 create mode 100644 tests/data/batch_input.xlsx
 create mode 100644 tests/data/image.zip

diff --git a/mutalyzer/File.py b/mutalyzer/File.py
index 3de998da..1212d310 100644
--- a/mutalyzer/File.py
+++ b/mutalyzer/File.py
@@ -18,21 +18,80 @@ Module for parsing CSV files and spreadsheets.
 
 from __future__ import unicode_literals
 
+import codecs
+import re
 import magic           # open(), MAGIC_MIME, MAGIC_NONE
 import csv             # Sniffer(), reader(), Error
 import xlrd            # open_workbook()
 import zipfile         # ZipFile()
 import xml.dom.minidom # parseString()
-import os              # remove()
-import tempfile
+import cchardet as chardet
 
 from mutalyzer.config import settings
 
 
-# Amount of bytes to be read for determining the file type.
+# Amount of bytes to be read from a file at a time (this is also the amount
+# read for determining the file type).
 BUFFER_SIZE = 32768
 
 
+class _UniversalNewlinesByteStreamIter(object):
+    """
+    The codecs module doesn't provide universal newline support. This class is
+    used as a stream wrapper that provides this functionality.
+
+    The wrapped stream must yield byte strings. We decode it using the given
+    encoding, normalise newlines, and yield UTF-8 encoded data (read method)
+    or lines (as iterator).
+
+    Adaptation from an old Cython version:
+    https://github.com/cython/cython/blob/076fac3/Cython/Utils.py
+    """
+    normalise_newlines = re.compile('\r\n?|\n').sub
+
+    def __init__(self, stream, encoding='utf-8', buffer_size=0x1000):
+        # let's assume .read() doesn't change
+        self.stream = codecs.getreader(encoding)(stream)
+        self._read = self.stream.read
+        self.buffer_size = buffer_size
+
+    def _read_normalised(self, count=None):
+        count = count or self.buffer_size
+        data = self._read(count)
+        if '\r' not in data:
+            return data
+        if data.endswith('\r'):
+            # may be missing a '\n'
+            data += self._read(1)
+        return self.normalise_newlines('\n', data)
+
+    def _readlines(self):
+        buffer = []
+        data = self._read_normalised()
+        while data:
+            buffer.append(data)
+            lines = ''.join(buffer).splitlines(True)
+            for line in lines[:-1]:
+                yield line
+            buffer = [lines[-1]]
+            data = self._read_normalised()
+
+        if buffer[0]:
+            yield buffer[0]
+
+    def seek(self, pos):
+        if pos == 0:
+            self.stream.seek(0)
+        else:
+            raise NotImplementedError
+
+    def read(self, count=-1):
+        return self._read_normalised(count).encode('utf-8')
+
+    def __iter__(self):
+        return (line.encode('utf-8') for line in self._readlines())
+
+
 class File() :
     """
     Parse CSV files and spreadsheets.
@@ -44,7 +103,6 @@ class File() :
         - __init__(config, output) ; Initialise the class.
 
     Private methods:
-        - __tempFileWrapper(func, handle) ; Call func() with a filename.
         - __parseCsvFile(handle)    ; Parse a CSV file.
         - __parseXlsFile(handle)    ; Parse an Excel file.
         - __parseOdsFile(handle)    ; Parse an OpenDocument Spreadsheet file.
@@ -70,56 +128,48 @@ class File() :
         self.__output = output #: The Output object
     #__init__
 
-    def __tempFileWrapper(self, func, handle) :
+    def __parseCsvFile(self, handle) :
         """
-        Make a temporary file, put the content of a stream in it and pass
-        the filename to a general function. Return whatever this function
-        returns.
+        Parse a CSV file. Does not reset the file handle to start.
 
-        @arg func: general function that needs a file name as argument
-        @type func: function
-        @arg handle: A stream
-        @type handle: stream
-
-        @return: unknown; the output of func().
-        @rtype: ?
-        """
-        write_handle, filename = tempfile.mkstemp(text=True)
-
-        # Dump the content of the stream pointed to by handle into the file.
-        handle.seek(0)
-        os.write(write_handle, handle.read())
-        os.close(write_handle)
-
-        # Open the file with func().
-        ret = func(filename)
-        # Apperantly apache will remove this file even when opened by the
-        # function *func
-        os.remove(filename)
-
-        return ret
-    #__tempFileWrapper
-
-    def __parseCsvFile(self, handle_) :
-        """
-        Parse a CSV file.
-        The stream is not rewinded after use.
-
-        @arg handle: A handle to a stream
-        @type handle: stream
+        @arg handle: CSV file. Must be a seekable binary file object.
+        @type handle: file object
 
         @return: list of lists
         @rtype: list
         """
-        # We wrap the file in a temporary file just to have universal newlines
-        # which is not always possible to have on incoming files (thinks web
-        # and rpc frontends). This transparently solves the problem of Unix
-        # versus Windows versus Mac style newlines.
-        handle = tempfile.TemporaryFile('rU+w')
-        for chunk in handle_:
-            handle.write(chunk)
-
+        buf = handle.read(BUFFER_SIZE)
+        result = chardet.detect(buf)
         handle.seek(0)
+
+        if result['confidence'] > 0.5:
+            encoding = result['encoding']
+        else:
+            encoding = 'utf-8'
+
+        # Python 2.7 makes it extraordinarily hard to do this correctly. We
+        # have a binary file object containing lines of text in a certain
+        # encoding with unknown style of line-endings.
+        #
+        # We want to correctly decode the file contents, accept any style of
+        # line-endings, parse the lines with the `csv` module, and return
+        # unicode strings.
+        #
+        # 1. `codecs.getreader` does not have a universal newlines mode.
+        # 2. `io.TextIOWrapper` cannot be wrapped around our file object,
+        #    since it is required to be an `io.BufferedIOBase`, which it
+        #    usually will not be.
+        # 3. The `csv` module cannot read unicode.
+        #
+        # Ugh.
+        #
+        # So, we use a stream wrapper that consumes byte strings, decodes to
+        # unicode, normalises newlines, and produces the result UTF-8 encoded.
+        # That's what we feed the `csv` module. We decode what it gives back
+        # to unicode strings. What a mess.
+        handle = _UniversalNewlinesByteStreamIter(handle, encoding=encoding,
+                                                  buffer_size=BUFFER_SIZE)
+
         buf = handle.read(BUFFER_SIZE)
 
         # Default dialect
@@ -147,41 +197,38 @@ class File() :
 
         ret = []
         for i in reader:
-            ret.append(i)
+            ret.append([c.decode('utf-8') for c in i])
 
-        handle.close()
         return ret
     #__parseCsvFile
 
     def __parseXlsFile(self, handle) :
         """
-        Parse an Excel file.
-        The stream is not rewinded after use.
+        Parse an Excel file. Does not reset the file handle to start.
 
-        @arg handle: A handle to a stream
-        @type handle: stream
+        @arg handle: Excel file. Must be a binary file object.
+        @type handle: file object
 
         @return: A list of lists
         @rtype: list
         """
 
-        workBook = self.__tempFileWrapper(xlrd.open_workbook, handle)
+        try:
+            workBook = xlrd.open_workbook(file_contents=handle.read())
+        except xlrd.XLRDError:
+            return None
+
         sheet = workBook.sheet_by_index(0)
 
         ret = []
         for i in range(sheet.nrows) :
             row = []
             for j in sheet.row_values(i) :
-                if isinstance(j, unicode):
-                    row.append(j)
-                else:
-                    row.append(j.decode('utf-8'))
+                row.append(j)
             #for
             ret.append(row)
         #for
 
-        del sheet, workBook
-
         return ret
     #__parseXlsFile
 
@@ -196,8 +243,8 @@ class File() :
         @return: A list of lists
         @rtype: list
         """
+        # Todo: Use a library for this.
 
-        #zipFile = self.__tempFileWrapper(zipfile.ZipFile, handle)
         zipFile = zipfile.ZipFile(handle)
         doc = xml.dom.minidom.parseString(zipFile.read("content.xml"))
         zipFile.close()
@@ -211,7 +258,8 @@ class File() :
                     row.append(c[0].lastChild.data)
                 #if
             #for
-            ret.append(row)
+            if row:
+                ret.append(row)
         #for
 
         return ret
@@ -342,8 +390,9 @@ class File() :
         Get the mime type of a stream by inspecting a fixed number of bytes.
         The stream is rewinded after use.
 
-        @arg handle: A handle to a stream
-        @type handle: stream
+        @arg handle: Stream to be inspected. Must be a seekable binary file
+          object.
+        @type handle: file object
 
         @return: The mime type of a file and a textual description.
         @rtype: unicode, unicode
@@ -358,7 +407,6 @@ class File() :
         MagicInstance = magic.open(magic.MAGIC_NONE)
         MagicInstance.load()
         description = MagicInstance.buffer(buf).decode('utf-8')
-        del MagicInstance
         handle.seek(0)
 
         return mimeType, description
@@ -367,22 +415,28 @@ class File() :
     def parseFileRaw(self, handle) :
         """
         Check which format a stream has and parse it with the appropriate
-        parser if the stream is recognised.
+        parser if the stream is recognised. Does not reset the file handle to
+        start.
 
-        @arg handle: A handle to a stream
-        @type handle: stream
+        @arg handle: Input file to be parsed. Must be a seekable binary file
+          object.
+        @type handle: file object
 
         @return: A list of lists, None if an error occured
         @rtype: list
         """
 
         mimeType = self.getMimeType(handle)
-        if mimeType[0] == "text/plain" :
+        if mimeType[0] == "text/plain":
             return self.__parseCsvFile(handle)
-        if mimeType[0] == "application/vnd.ms-office" :
+        if mimeType[0] in ('application/vnd.ms-excel',
+                           'application/vnd.ms-office',
+                           'application/msword',
+                           'application/zip'):
             return self.__parseXlsFile(handle)
-        if mimeType == ("application/octet-stream",
-                        "OpenDocument Spreadsheet") :
+        if (mimeType[0] == 'application/vnd.oasis.opendocument.spreadsheet' or
+            mimeType[1] in ('OpenDocument Spreadsheet',
+                            'OpenOffice.org 1.x Calc spreadsheet')):
             return self.__parseOdsFile(handle)
 
         return None
@@ -391,10 +445,12 @@ class File() :
     def parseBatchFile(self, handle) :
         """
         Check which format a stream has and parse it with the appropriate
-        parser if the stream is recognised.
+        parser if the stream is recognised. Does not reset the file handle to
+        start.
 
-        @arg handle: A handle to a stream
-        @type handle: stream
+        @arg handle: Batch job input file. Must be a seekable binary file
+          object.
+        @type handle: file object
 
         @return: A sanitised list of lists (without a header or empty lines)
                  (or None if an error occured) and the number of columns.
diff --git a/mutalyzer/Scheduler.py b/mutalyzer/Scheduler.py
index ee7223a9..400c81c5 100644
--- a/mutalyzer/Scheduler.py
+++ b/mutalyzer/Scheduler.py
@@ -17,6 +17,7 @@ Module used to add and manage the Batch Jobs.
 
 from __future__ import unicode_literals
 
+import io
 import os                               # os.path.exists
 import smtplib                          # smtplib.STMP
 from email.mime.text import MIMEText    # MIMEText
@@ -449,11 +450,11 @@ Mutalyzer batch scheduler""" % url)
                       'Affected Proteins',
                       'Restriction Sites Created',
                       'Restriction Sites Deleted']
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
             handle.write("%s\n" % "\t".join(header))
         #if
         else :
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
 
         if flags and 'C' in flags:
             separator = '\t'
@@ -508,11 +509,11 @@ Mutalyzer batch scheduler""" % url)
             # header above it. The header is read from the config file as
             # a list. We need a tab delimited string.
             header = ['Input', 'Status']
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
             handle.write("%s\n" % "\t".join(header))
         #if
         else :
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
 
         if flags and 'C' in flags:
             separator = '\t'
@@ -620,11 +621,11 @@ Mutalyzer batch scheduler""" % url)
                       'Errors',
                       'Chromosomal Variant',
                       'Coding Variant(s)']
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
             handle.write("%s\n" % "\t".join(header))
         #if
         else :
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
 
         if flags and 'C' in flags:
             separator = '\t'
@@ -682,11 +683,11 @@ Mutalyzer batch scheduler""" % url)
             header = ['Input Variant',
                       'HGVS description(s)',
                       'Errors and warnings']
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
             handle.write("%s\n" % "\t".join(header))
         #if
         else :
-            handle = open(filename, 'a')
+            handle = io.open(filename, mode='a', encoding='utf-8')
 
         if flags and 'C' in flags:
             separator = '\t'
diff --git a/mutalyzer/services/rpc.py b/mutalyzer/services/rpc.py
index 004fa869..7f50548b 100644
--- a/mutalyzer/services/rpc.py
+++ b/mutalyzer/services/rpc.py
@@ -16,9 +16,9 @@ from spyne.service import ServiceBase
 from spyne.model.primitive import Integer, Boolean, DateTime, Unicode
 from spyne.model.complex import Array
 from spyne.model.fault import Fault
+import io
 import os
 import socket
-from io import BytesIO
 from operator import attrgetter
 from sqlalchemy.orm.exc import NoResultFound
 
@@ -91,6 +91,12 @@ class MutalyzerService(ServiceBase):
                         'The process argument must be one of %s.'
                         % ', '.join(batch_types))
 
+        # The Python type for `data` should be a sequence of `str` objects,
+        # but it seems we sometimes just get one `str` object. Perhaps only in
+        # the unit tests, but let's fix that anyway.
+        if isinstance(data, str):
+            data = [data]
+
         # Note that the max file size check below might be bogus, since Spyne
         # first checks the total request size, which by default has a maximum
         # of 2 megabytes.
@@ -104,7 +110,7 @@ class MutalyzerService(ServiceBase):
                         'Only files up to %d megabytes are accepted.'
                         % (settings.MAX_FILE_SIZE // 1048576))
 
-        batch_file = BytesIO()
+        batch_file = io.BytesIO()
         for d in data:
             batch_file.write(d)
 
diff --git a/mutalyzer/website/views.py b/mutalyzer/website/views.py
index 03644dcc..f6f228b1 100644
--- a/mutalyzer/website/views.py
+++ b/mutalyzer/website/views.py
@@ -773,7 +773,9 @@ def batch_jobs_submit():
     """
     job_type = request.form.get('job_type')
     email = request.form.get('email')
-    file = request.files.get('file')
+
+    # Note that this is always a seekable binary file object.
+    batch_file = request.files.get('file')
 
     assemblies = Assembly.query \
         .order_by(Assembly.taxonomy_common_name.asc(),
@@ -809,7 +811,7 @@ def batch_jobs_submit():
 
         scheduler = Scheduler.Scheduler()
         file_instance = File.File(output)
-        job, columns = file_instance.parseBatchFile(file)
+        job, columns = file_instance.parseBatchFile(batch_file)
 
         if job is None:
             errors.append('Could not parse input file, please check your '
diff --git a/requirements.txt b/requirements.txt
index 08f2d5de..c79b98aa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -21,3 +21,4 @@ mock==1.0.1
 alembic==0.6.3
 Sphinx==1.2.1
 sphinx-rtd-theme==0.1.5
+cchardet==0.3.5
diff --git a/tests/data/batch_input.ods b/tests/data/batch_input.ods
new file mode 100644
index 0000000000000000000000000000000000000000..ea08744237a58f80386e041f23583e6555b459ed
GIT binary patch
literal 9175
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

literal 0
HcmV?d00001

diff --git a/tests/data/batch_input.sxc b/tests/data/batch_input.sxc
new file mode 100644
index 0000000000000000000000000000000000000000..942282e2acc2e68f5ac7e496c0f48db6f2d1870b
GIT binary patch
literal 9036
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
RM+ssyz(?o^@bJ~K{{x`0JrV!_

literal 0
HcmV?d00001

diff --git a/tests/data/batch_input.xls b/tests/data/batch_input.xls
new file mode 100644
index 0000000000000000000000000000000000000000..e795855d7ae0856f3b91da7b2732245274073f75
GIT binary patch
literal 6656
zcmeHLO>9(E6h3d-DX&oIv`|z)d=%*q{c$=S`B9-$O8JRUno@N`Qm4afX_<D+FeomJ
z!(ZY85)BJokQhui#zZkDx{$=ObD_bQV9<@NyG9lR(HIiw_<i@i=L}_r&X9?wX3pfh
z_s)6e{+)B~Iq$w7u2oH4`h3;2%%SI{L}ruaQkKTo&|d8P_lUUACT}*GOgd~di?o0=
zaL-;VZCDB;x&hjJ5ugL*0G}<f>jkv6;!<<aK%YeLi-{rKGLAYbZ^F{K(@J<u`ZT%p
zOph12$j>KJoIj<3`E<qS>H25<W*jd8vYmg%e4hUbU@5Q+s05G#qzb48mIEt*8ek>x
z81Ojo1h5KN4Xgp41l9si0S2%Rs0G#oPXil(I-nkC02+af0N31X*K9w7wijr#dF^(c
z(nPV9iw4SdSh374UoZWRAz#J*X?Vot(yPiZegp52yhh*X3Wh_*zePLL8iE>qa}rLv
zO)JB@h6{dr5#=)ZOg*`x%5BO6As7&23o5>qoW~#bJ+I1IRW3uR$ych+FN)I!-~1L*
z$+zFN4}x3kL<}5}poHOD_dSJNp`NZSt&j=k*xlVd-F=<=rqtP)kUx_KW^riJAfF3U
z{6BKzbJv;Vv++4<Ci(v_e*!u+xILR3JvUi;NX+FoX5lwy;cv{sFMoi4!G&`bmn3UX
zyhPPi@iJ9c$4gbcJibWPE8_0ttMFY-&cgqHMMs|2gGWp=)<%xYKEI0NBWIc~aE?s-
zIh<h)zpI)Ki1eS=<aZfmBu@-dP|6aFxD4|goEd?j{}J>b)()>-mLwSYzrlN=E+;j-
zDe9A20A)bd-ePV*uFx@<j$EMsg>-ROcB)Z067ogo4zF+1R_~_Pw&y~vzRmvK+xypp
zyU*|6>i4y`w)q>ncD~r->l}F9>-9B4=Gg(i*L&CuCvgkW<pdVVj1<yq05oi31|qqb
zwyf~xxi7p`U=fG0ZK|?LEy#o6?tXmh$Nhu79RrFV2gjieG?FCcB%WL?-Kcsrsq&PP
zU4g{44q2<KuC{+<%sgiFm~R+;k+I--bDueUJRFSH*0uTSI%|;3klN;v>kST@MqTe|
zHNhEG)?qR2ie@_M)7lMapKiHvs^vzaqcN?0NoujR!vKG$q*-g$oc>O&$x9e}vAm^p
zDB3$qn9)HlW_Qclmc4ZsZOQg+Rf|?B<XL`^;@z|FhSoUzM~O;R-jrS{Jh2BHC_6#r
z@+lpyQc4nDG%KZ4`JX1`32R0QqzJ23{n&@Ml<lr+`BGg^11TZAUtl~nG$!CrWEc)O
zoH8eE#>~i0g>@0p7O0E39?3;gT2D8xk#1gSJ#X`(&p+l>Qv^`H0Cy%S^QxBRKWG-s
zJ6{ASq<OvR=0*6;+q~#gNb_pA8I<4{^F(`eW){3Js#13G&ar<a6pb8<48@G@6CpEf
zY~9?_9~?BpVH1f_WXH(RkoC%F^~t+LfUzdcyQkG*7IBF0wR4GqYwGNWx9=P{;`!t~
zU7G5@_?c1i3gAS~J!msE_1e56sQJAn4luHv19)%y0AQw^0C<193~<Jod)8fy(RP0@
z8XFlMH(oZQW5Hld-O;k~*_ZdO0N_x-X`oi^HA{DSXRh&mK;l1rbcSs-AE0de=Nzu<
z-(SDjy4rK$eeA#a&Zj%UbI;)&0+07h4o+~*?907n<KuCWYz-9h`;XH9oHLk7(R_nc
zj)>|Ne0_?_Q5jU<p^jz}e<-gS)~3CA4xFt1&<^&)Ngfc8CS90$3^&{ZSi`8r%%kM|
z+z;m_<<hkYLVImN4fBS@%%xjKnZ=mjn%OEd3e91*;6K0Bklb=mj${90xbgDa-(GwL
z98xwRCx)AF1f1;DV9(E(p6mWwA$!vv(v3SoL_%r}ruqVz-+Hz@!v1}jJ7&*ch$>(G
Lr+<I@ujl_8Jv@<w

literal 0
HcmV?d00001

diff --git a/tests/data/batch_input.xlsx b/tests/data/batch_input.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..b2a5a87674b7eb49eed8c7ed53e227762e8bf17f
GIT binary patch
literal 6536
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
ImjL?fAMkY{&j0`b

literal 0
HcmV?d00001

diff --git a/tests/data/image.zip b/tests/data/image.zip
new file mode 100644
index 0000000000000000000000000000000000000000..df09158894dfb403f0edb2e5dc24a2749bee6c0d
GIT binary patch
literal 87562
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

literal 0
HcmV?d00001

diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index 6f0b4c4e..6470eb46 100644
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -30,12 +30,10 @@ class TestScheduler(MutalyzerTest):
     """
     fixtures = (database, )
 
-    @staticmethod
-    def _batch_job(variants, expected, job_type, argument=None):
+    def _batch_job(self, batch_file, expected, job_type, argument=None):
         file_instance = File.File(output.Output('test'))
         scheduler = Scheduler.Scheduler()
 
-        batch_file = io.BytesIO(('\n'.join(variants) + '\n').encode('utf-8'))
         job, columns = file_instance.parseBatchFile(batch_file)
         result_id = scheduler.addJob('test@test.test', job, columns,
                                      job_type, argument=argument)
@@ -43,7 +41,7 @@ class TestScheduler(MutalyzerTest):
         batch_job = BatchJob.query.filter_by(result_id=result_id).one()
 
         left = batch_job.batch_queue_items.count()
-        assert left == len(variants)
+        assert left == len(expected)
 
         scheduler.process()
 
@@ -56,6 +54,10 @@ class TestScheduler(MutalyzerTest):
         next(result) # Header.
         assert expected == [line.strip().split('\t') for line in result]
 
+    def _batch_job_plain_text(self, variants, expected, job_type, argument=None):
+        batch_file = io.BytesIO(('\n'.join(variants) + '\n').encode('utf-8'))
+        self._batch_job(batch_file, expected, job_type, argument=argument)
+
     def test_syntax_checker(self):
         """
         Simple syntax checker batch job.
@@ -66,7 +68,7 @@ class TestScheduler(MutalyzerTest):
                      'OK'],
                     ['AL449423.14(CDKN2A_v002):c.5_400del',
                      'OK']]
-        self._batch_job(variants, expected, 'syntax-checker')
+        self._batch_job_plain_text(variants, expected, 'syntax-checker')
 
     @fix(cache('AB026906.1', 'NM_000059.3'))
     def test_name_checker(self):
@@ -112,7 +114,7 @@ class TestScheduler(MutalyzerTest):
                      'NM_000059.3(BRCA2_i001):p.(Asp224Tyr)',
                      '',
                      'BspHI,CviAII,FatI,Hpy188III,NlaIII']]
-        self._batch_job(variants, expected, 'name-checker')
+        self._batch_job_plain_text(variants, expected, 'name-checker')
 
     def test_name_checker_altered(self):
         """
@@ -189,7 +191,7 @@ class TestScheduler(MutalyzerTest):
             return bz2.BZ2File(path)
 
         with patch.object(Entrez, 'efetch', mock_efetch):
-            self._batch_job(variants, expected, 'name-checker')
+            self._batch_job_plain_text(variants, expected, 'name-checker')
 
     @fix(cache('NM_000059.3'))
     def test_name_checker_skipped(self):
@@ -230,7 +232,7 @@ class TestScheduler(MutalyzerTest):
             raise IOError()
 
         with patch.object(Entrez, 'efetch', mock_efetch):
-            self._batch_job(variants, expected, 'name-checker')
+            self._batch_job_plain_text(variants, expected, 'name-checker')
 
     @fix(hg19, hg19_transcript_mappings)
     def test_position_converter(self):
@@ -244,4 +246,77 @@ class TestScheduler(MutalyzerTest):
                      'NM_003002.2:c.274G>T',
                      'NM_012459.2:c.-2203C>A',
                      'NR_028383.1:n.-2173C>A']]
-        self._batch_job(variants, expected, 'position-converter', 'hg19')
+        self._batch_job_plain_text(variants, expected, 'position-converter', 'hg19')
+
+    def test_ods_file(self):
+        """
+        OpenDocument Spreadsheet input for batch job.
+        """
+        path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                            'data',
+                            'batch_input.ods')
+        batch_file = open(path, 'rb')
+        expected = [['AB026906.1:c.274G>T',
+                     'OK'],
+                    ['AL449423.14(CDKN2A_v002):c.5_400del',
+                     'OK']]
+
+        self._batch_job(batch_file, expected, 'syntax-checker')
+
+    def test_sxc_file(self):
+        """
+        OpenOffice.org 1.x Calc spreadsheet input for batch job.
+        """
+        path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                            'data',
+                            'batch_input.sxc')
+        batch_file = open(path, 'rb')
+        expected = [['AB026906.1:c.274G>T',
+                     'OK'],
+                    ['AL449423.14(CDKN2A_v002):c.5_400del',
+                     'OK']]
+
+        self._batch_job(batch_file, expected, 'syntax-checker')
+
+    def test_xls_file(self):
+        """
+        Microsoft Excel 97/2000/XP/2003 input for batch job.
+        """
+        path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                            'data',
+                            'batch_input.xls')
+        batch_file = open(path, 'rb')
+        expected = [['AB026906.1:c.274G>T',
+                     'OK'],
+                    ['AL449423.14(CDKN2A_v002):c.5_400del',
+                     'OK']]
+
+        self._batch_job(batch_file, expected, 'syntax-checker')
+
+    def test_xlsx_file(self):
+        """
+        Office Open XML Spreadsheet input for batch job.
+        """
+        path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                            'data',
+                            'batch_input.xlsx')
+        batch_file = open(path, 'rb')
+        expected = [['AB026906.1:c.274G>T',
+                     'OK'],
+                    ['AL449423.14(CDKN2A_v002):c.5_400del',
+                     'OK']]
+
+        self._batch_job(batch_file, expected, 'syntax-checker')
+
+    def test_invalid_zip_file(self):
+        """
+        Random zip file input for batch job (invalid).
+        """
+        path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                            'data',
+                            'image.zip')
+        batch_file = open(path, 'rb')
+
+        file_instance = File.File(output.Output('test'))
+        job, columns = file_instance.parseBatchFile(batch_file)
+        assert job is None
-- 
GitLab