Skip to content

Commit 0f44404

Browse files
josenavasantgonza
authored andcommitted
fixes #2245 (#2350)
* fixes #2245 * Addressing @antgonza's comments * Fixing test
1 parent e35e838 commit 0f44404

File tree

6 files changed

+36
-14
lines changed

6 files changed

+36
-14
lines changed

qiita_db/analysis.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -429,15 +429,17 @@ def mapping_file(self):
429429
430430
Returns
431431
-------
432-
str or None
433-
full filepath to the mapping file or None if not generated
432+
int or None
433+
The filepath id of the analysis mapping file or None
434+
if not generated
434435
"""
435-
fp = [fp for _, fp, fp_type in qdb.util.retrieve_filepaths(
436-
"analysis_filepath", "analysis_id", self._id)
437-
if fp_type == 'plain_text']
436+
fp = [fp_id
437+
for fp_id, _, fp_type in qdb.util.retrieve_filepaths(
438+
"analysis_filepath", "analysis_id", self._id)
439+
if fp_type == 'plain_text']
438440

439441
if fp:
440-
# returning the actual path vs. an array
442+
# returning the actual filepath id vs. an array
441443
return fp[0]
442444
else:
443445
return None

qiita_db/handlers/analysis.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ def get(self, analysis_id):
5959
"""
6060
with qdb.sql_connection.TRN:
6161
a = _get_analysis(analysis_id)
62-
mf_fp = a.mapping_file
62+
mf_fp = qdb.util.get_filepath_information(
63+
a.mapping_file)['fullpath']
6364
response = None
6465
if mf_fp is not None:
6566
df = qdb.metadata_template.util.load_template_to_dataframe(

qiita_db/test/test_analysis.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,9 @@ def test_set_pmid(self):
290290
def test_retrieve_mapping_file(self):
291291
exp = join(self.fp, "1_analysis_mapping.txt")
292292
obs = self.analysis.mapping_file
293-
self.assertEqual(obs, exp)
293+
self.assertIsNotNone(obs)
294+
self.assertEqual(
295+
qdb.util.get_filepath_information(obs)['fullpath'], exp)
294296
self.assertTrue(exists(exp))
295297

296298
def test_retrieve_tgz(self):
@@ -370,7 +372,8 @@ def test_build_mapping_file(self):
370372

371373
npt.assert_warns(qdb.exceptions.QiitaDBWarning,
372374
analysis._build_mapping_file, samples)
373-
obs = analysis.mapping_file
375+
obs = qdb.util.get_filepath_information(
376+
analysis.mapping_file)['fullpath']
374377

375378
exp = self.get_fp("%s_analysis_mapping.txt" % analysis.id)
376379
self.assertEqual(obs, exp)
@@ -388,8 +391,10 @@ def test_build_mapping_file_duplicated_samples_no_merge(self):
388391
npt.assert_warns(qdb.exceptions.QiitaDBWarning,
389392
analysis._build_mapping_file, samples, True)
390393

394+
mapping_fp = qdb.util.get_filepath_information(
395+
analysis.mapping_file)['fullpath']
391396
obs = qdb.metadata_template.util.load_template_to_dataframe(
392-
analysis.mapping_file, index='#SampleID')
397+
mapping_fp, index='#SampleID')
393398
exp = qdb.metadata_template.util.load_template_to_dataframe(
394399
self.duplicated_samples_not_merged, index='#SampleID')
395400

@@ -405,8 +410,10 @@ def test_build_mapping_file_duplicated_samples_merge(self):
405410
3: ['1.SKB8.640193', '1.SKD8.640184', '1.SKB7.640196']}
406411
npt.assert_warns(qdb.exceptions.QiitaDBWarning,
407412
analysis._build_mapping_file, samples)
413+
mapping_fp = qdb.util.get_filepath_information(
414+
analysis.mapping_file)['fullpath']
408415
obs = qdb.metadata_template.util.load_template_to_dataframe(
409-
analysis.mapping_file, index='#SampleID')
416+
mapping_fp, index='#SampleID')
410417
exp = qdb.metadata_template.util.load_template_to_dataframe(
411418
self.map_exp_fp, index='#SampleID')
412419
assert_frame_equal(obs, exp)
@@ -460,8 +467,10 @@ def test_build_files(self):
460467
# testing that the generated files have the same sample ids
461468
biom_fp = biom_tables[0][1]
462469
biom_ids = load_table(biom_fp).ids(axis='sample')
470+
mapping_fp = qdb.util.get_filepath_information(
471+
analysis.mapping_file)['fullpath']
463472
mf_ids = qdb.metadata_template.util.load_template_to_dataframe(
464-
analysis.mapping_file, index='#SampleID').index
473+
mapping_fp, index='#SampleID').index
465474

466475
self.assertItemsEqual(biom_ids, mf_ids)
467476

@@ -493,8 +502,11 @@ def test_build_files_merge_duplicated_sample_ids(self):
493502
biom_ids = []
494503
for _, fp in biom_tables:
495504
biom_ids.extend(load_table(fp).ids(axis='sample'))
505+
506+
mapping_fp = qdb.util.get_filepath_information(
507+
new.mapping_file)['fullpath']
496508
mf_ids = qdb.metadata_template.util.load_template_to_dataframe(
497-
new.mapping_file, index='#SampleID').index
509+
mapping_fp, index='#SampleID').index
498510

499511
self.assertItemsEqual(biom_ids, mf_ids)
500512

qiita_pet/handlers/analysis_handlers/base_handlers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def analysis_description_handler_get_request(analysis_id, user):
6464
return {'analysis_name': analysis.name,
6565
'analysis_id': analysis.id,
6666
'analysis_description': analysis.description,
67+
'analysis_mapping_id': analysis.mapping_file,
6768
'alert_type': alert_type,
6869
'alert_msg': alert_msg}
6970

qiita_pet/handlers/analysis_handlers/tests/test_base_handlers.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ def test_analysis_description_handler_get_request(self):
3232
exp = {'analysis_name': 'SomeAnalysis',
3333
'analysis_id': 1,
3434
'analysis_description': 'A test analysis',
35+
'analysis_mapping_id': 16,
3536
'alert_type': 'info',
3637
'alert_msg': ''}
3738
self.assertEqual(obs, exp)
@@ -42,6 +43,7 @@ def test_analysis_description_handler_get_request(self):
4243
exp = {'analysis_name': 'SomeAnalysis',
4344
'analysis_id': 1,
4445
'analysis_description': 'A test analysis',
46+
'analysis_mapping_id': 16,
4547
'alert_type': 'info',
4648
'alert_msg': 'An artifact is being deleted from this analysis'}
4749
self.assertEqual(obs, exp)
@@ -54,6 +56,7 @@ def test_analysis_description_handler_get_request(self):
5456
exp = {'analysis_name': 'SomeAnalysis',
5557
'analysis_id': 1,
5658
'analysis_description': 'A test analysis',
59+
'analysis_mapping_id': 16,
5760
'alert_type': 'danger',
5861
'alert_msg': 'Error deleting artifact'}
5962
self.assertEqual(obs, exp)

qiita_pet/templates/analysis_description.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,10 @@
242242
<div class="col">
243243
<h2>
244244
{{analysis_name}} - ID {{analysis_id}}
245-
<a class="btn btn-info glyphicon glyphicon-share" data-toggle="modal" data-target="#share-analysis-modal-view" onclick="modify_sharing({{analysis_id}});"></a>
245+
<a class="btn btn-info" data-toggle="modal" data-target="#share-analysis-modal-view" onclick="modify_sharing({{analysis_id}});"><span class=" glyphicon glyphicon-share"></span></a>
246+
{% if analysis_mapping_id is not None %}
247+
<a class="btn btn-default" href="{% raw qiita_config.portal_dir %}/download/{{analysis_mapping_id}}"><span class="glyphicon glyphicon-download-alt"></span> Mapping file</a>
248+
{% end %}
246249
</h2>
247250
<h3>{{analysis_description}}</h3>
248251
Shared with: <span id="shared_html_{{analysis_id}}"></span>

0 commit comments

Comments
 (0)