Skip to content

Commit

Permalink
tests and fixes for downloading what is shown
Browse files Browse the repository at this point in the history
  • Loading branch information
talavis committed Apr 11, 2019
1 parent c5ca6d2 commit 08c2585
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
18 changes: 10 additions & 8 deletions backend/modules/browser/browser_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,23 @@ def get(self, dataset:str, datatype:str, item:str, ds_version:str=None, filter_t
filter_type (str): type of filter to apply
"""
# ctrl.filterVariantsBy~ctrl.filterIncludeNonPass
filters = filter_type.split('~')
dataset, ds_version = utils.parse_dataset(dataset, ds_version)
filename = "{}_{}_{}.csv".format(dataset, datatype, item)
self.set_header('Content-Type','text/csv')
self.set_header('content-Disposition','attachement; filename={}'.format(filename))

data = utils.get_variant_list(dataset, datatype, item, ds_version)
logging.error(data)
# filter variants based on what is shown
if filters[1] == 'false':
data = [variant for variant in data if variant['filter_string'] == 'PASS']
if filters[0] == 'mislof':
data = [variant for variant in data if variant['major_consequence'] == 'missense']
if 'lof' in filters[0]:
data = [variant for variant in data if 'LoF' in variant['filter']]
if filter_type:
filters = filter_type.split('~')
if filters[1] == 'false':
data['variants'] = [variant for variant in data['variants'] if variant['filter_string'] == 'PASS']
if filters[0] == 'mislof':
data['variants'] = [variant for variant in data['variants']
if variant['major_consequence'] == 'missense'
or 'LoF' in variant['flags']]
elif 'lof' in filters[0]:
data['variants'] = [variant for variant in data['variants'] if 'LoF' in variant['flags']]

# Write header
self.write(','.join([h[1] for h in data['headers']]) + '\n')
Expand Down
14 changes: 14 additions & 0 deletions backend/modules/browser/tests/test_browser_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,21 @@ def test_download():
data_type = 'transcript'
data_item = 'ENST00000438441'
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}'.format(BASE_URL, dataset, data_type, data_item))
assert len(response.text.split('\n')) == 180 # header + 178 + \n
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}/filter/all~false'.format(BASE_URL, dataset, data_type, data_item))
import logging
logging.error(response.text.split('\n'))
assert len(response.text.split('\n')) == 8
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}/filter/all~true'.format(BASE_URL, dataset, data_type, data_item))
assert len(response.text.split('\n')) == 180
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}/filter/mislof~true'.format(BASE_URL, dataset, data_type, data_item))
assert len(response.text.split('\n')) == 2
data_type = 'region'
data_item = '22-29450622-29465622'
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}/filter/mislof~false'.format(BASE_URL, dataset, data_type, data_item))
assert len(response.text.split('\n')) == 3
response = requests.get('{}/api/dataset/{}/browser/download/{}/{}/filter/lof~false'.format(BASE_URL, dataset, data_type, data_item))
assert len(response.text.split('\n')) == 3


def test_get_coverage():
Expand Down

0 comments on commit 08c2585

Please sign in to comment.