From 55ca04e1023d6e7f1a5ecad6e618dd7da3dce06f Mon Sep 17 00:00:00 2001 From: Martijn Vermaat <martijn@vermaat.name> Date: Sat, 4 Oct 2014 00:14:33 +0200 Subject: [PATCH] Fix crash in position converter batch job Fixes Trac#174 --- mutalyzer/Scheduler.py | 9 ++++++++- tests/test_scheduler.py | 18 ++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/mutalyzer/Scheduler.py b/mutalyzer/Scheduler.py index f8d0dee8..e6f102d3 100644 --- a/mutalyzer/Scheduler.py +++ b/mutalyzer/Scheduler.py @@ -19,6 +19,7 @@ import os # os.path.exists import smtplib # smtplib.STMP from email.mime.text import MIMEText # MIMEText from sqlalchemy import func +from sqlalchemy.orm.exc import NoResultFound import mutalyzer from mutalyzer.config import settings @@ -557,7 +558,13 @@ Mutalyzer batch scheduler""" % url) if not skip : try : #process - assembly = Assembly.get(int(batch_job.argument)) + try: + assembly = Assembly.by_name_or_alias(batch_job.argument) + except NoResultFound: + O.addMessage(__file__, 3, 'ENOASSEMBLY', + 'Not a valid assembly: ' + str(batch_job.argument)) + raise + converter = Converter(assembly, O) #Also accept chr accNo diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py index a722f331..fc5e4abe 100644 --- a/tests/test_scheduler.py +++ b/tests/test_scheduler.py @@ -17,7 +17,7 @@ from mutalyzer import File from mutalyzer import output from mutalyzer import Scheduler -from fixtures import database, cache +from fixtures import database, cache, hg19, hg19_transcript_mappings from utils import MutalyzerTest from utils import fix @@ -36,7 +36,7 @@ class TestScheduler(MutalyzerTest): batch_file = StringIO.StringIO('\n'.join(variants) + '\n') job, columns = file_instance.parseBatchFile(batch_file) result_id = scheduler.addJob('test@test.test', job, columns, - job_type) + job_type, argument=argument) batch_job = BatchJob.query.filter_by(result_id=result_id).one() @@ -229,3 +229,17 @@ class TestScheduler(MutalyzerTest): with patch.object(Entrez, 'efetch', mock_efetch): self._batch_job(variants, expected, 'name-checker') + + @fix(hg19, hg19_transcript_mappings) + def test_position_converter(self): + """ + Simple position converter batch job. + """ + variants = ['chr11:g.111959695G>T'] + expected = [['chr11:g.111959695G>T', + '', + 'NC_000011.9:g.111959695G>T', + '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') -- GitLab