def test_moleculessdf_somecols(self): job = self.fake_job() job.db.molecules2sdf.return_value = 'bla' request = testing.DummyRequest(params={ 'start': 0, 'limit': 10, 'cols': '["name","score"]' }) views = JobViews(job, request) views.moleculesjson = Mock(return_value={'rows': []}) views.moleculessdf() job.db.molecules2sdf.assert_called_with([], cols=['name', 'score'])
def test_moleculescsv(self): csv = StringIO() csv.write('bla') job = self.fake_job() job.db.molecules2csv.return_value = csv request = testing.DummyRequest(params={'start': 0, 'limit': 10}) views = JobViews(job, request) views.moleculesjson = Mock(return_value={'rows': []}) response = views.moleculescsv() self.assertEqual(response.content_type, 'text/csv') self.assertEqual(response.body, b'bla')
def test_moleculesjson_notfilledreturn(self): request = testing.DummyRequest(params={'start': 0, 'limit': 10}) job = self.fake_job() job.db.moleculesTotalCount.return_value = 0 views = JobViews(job, request) response = views.moleculesjson() self.assertEqual(response, { 'totalUnfiltered': 0, 'total': 3, 'rows': [1, 2, 3], 'scans': [4, 5] })
def test_fragments_badmolecule_notfound(self): from magmaweb.job import FragmentNotFound request = testing.DummyRequest(matchdict={ 'molid': 72, 'scanid': 641 }, params={'node': ''}) job = self.fake_job() job.db.fragments.side_effect = FragmentNotFound views = JobViews(job, request) from pyramid.httpexceptions import HTTPNotFound with self.assertRaises(HTTPNotFound): views.fragments()
def test_incompletejob(self): request = testing.DummyRequest(params={'start': 0, 'limit': 10}) job = self.fake_job() job.is_complete = Mock() JobViews(job, request) job.is_complete.assert_called_with()
def test_moleculescsv_somecols(self): csv = StringIO() csv.write('bla') job = self.fake_job() job.db.molecules2csv.return_value = csv request = testing.DummyRequest(params={ 'start': 0, 'limit': 10, 'cols': '["name","score"]' }) views = JobViews(job, request) rows = [{'name': 'foo', 'score': 'bar', 'id': 123}] views.moleculesjson = Mock(return_value={'rows': rows}) views.moleculescsv() job.db.molecules2csv.assert_called_with(rows, cols=['name', 'score'])
def test_runinfojson(self): request = testing.DummyRequest() job = self.fake_job() from magmaweb.models import Run job.db.runInfo.return_value = Run( ionisation_mode=-1, skip_fragmentation=True, ms_intensity_cutoff=200000.0, msms_intensity_cutoff=50, mz_precision=4.0, mz_precision_abs=0.002, use_all_peaks=True, ms_filename='F123456.mzxml', abs_peak_cutoff=1000, max_ms_level=3, precursor_mz_precision=0.01, max_broken_bonds=4, description='My first description', max_water_losses=1, ) views = JobViews(job, request) response = views.runinfojson() self.assertEqual( response, { 'success': True, 'data': dict( ms_data_area='', ms_data_format='mzxml', ionisation_mode=-1, ms_intensity_cutoff=200000.0, msms_intensity_cutoff=50, mz_precision=4.0, mz_precision_abs=0.002, abs_peak_cutoff=1000, max_ms_level=3, precursor_mz_precision=0.01, max_broken_bonds=4, max_water_losses=1, ) })
def test_moleculesjson_scanidfilter(self): request = testing.DummyRequest(params={ 'start': 0, 'limit': 10, 'scanid': 641 }) job = self.fake_job() views = JobViews(job, request) views.moleculesjson() job.db.molecules.assert_called_with( start=0, limit=10, sorts=[], scanid=641, filters=[], molid=None, mz=None, )
def test_moleculesjson_scansfilteredonmol(self): request = testing.DummyRequest(params={ 'start': 0, 'limit': 10, 'molid': 1, }) job = self.fake_job() views = JobViews(job, request) job.db.molecules.return_value = { 'total': 3, 'rows': [1, 2, 3], 'page': 1, 'molid': 1 } views.moleculesjson() job.db.scansWithMolecules.assert_called_once_with(filters=[], molid=1, mz=None, scanid=None)