Skip to content

Commit

Permalink
improve coverage for endpoint tests
Browse files Browse the repository at this point in the history
  • Loading branch information
saapooch committed Oct 17, 2018
1 parent 3d514b7 commit d79c48f
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 19 deletions.
13 changes: 8 additions & 5 deletions datanator/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,23 @@ def get(self, value):
class MetaboliteSearch(Resource):
@api.doc(params={'value': 'Value to search over in the metabolite space'})
def get(self,value):
serialized_metabolites = MetaboliteSerializer().dump(search_dict['Metabolite'], many=True)
return {'metabolites': serialized_metabolite.data}
metabolite_search = metabolite_manager._search_complex(value)
serialized_metabolites = MetaboliteSerializer().dump(metabolite_search, many=True)
return {'metabolites': serialized_metabolites.data}

class ProteinSubunitSearch(Resource):
@api.doc(params={'value': 'Value to search over in the protein subunit space'})
def get(self,value):
serialized_subunits = ProteinSubunitSerializer().dump(search_dict['ProteinSubunit'], many=True)
subunit_search = subunit_manager._search_complex(value)
serialized_subunits = ProteinSubunitSerializer().dump(subunit_search, many=True)
return {'subunits': serialized_subunits.data}

class ProteinComplexSearch(Resource):
@api.doc(params={'value': 'Value to search over in the protein complex space'})
def get(self,value):
serialized_complexes = ProteinComplexSerializer().dump(search_dict['ProteinComplex'], many=True)
return {'complexes': serialized_complex.data}
complex_search = complex_manager._search(value)
serialized_complexes = ProteinComplexSerializer().dump(complex_search, many=True)
return {'complexes': serialized_complexes.data}

class Metabolite(Resource):

Expand Down
107 changes: 93 additions & 14 deletions tests/api/test_endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,87 @@
from datanator import app
from datanator.api.views import *


class TestViews(TestCase):

def create_app(self):
return app

def setUp(self):
self.general_search = 'adenine'
self.metabolite_search = 'guanine'
self.subunit_search = 'egfr'
self.complex_search = 'MCM complex'
self.metabolite_id = 72100
self.subunit_id = 5
self.complex_id = 69993
self.reaction_id = 70208

def tearDown(self):
pass

#NOTE: Text Search tests
def test_search_general(self):
response = Search().get(self.general_search)
self.assertEqual(set(response.keys()),set(['complexes', 'metabolites', 'reactions', 'subunits']) )

def test_search_metabolite(self):
response = MetaboliteSearch().get(self.metabolite_search)
self.assertEqual(set(response.keys()),set(['metabolites']) )

def test_search_subunit(self):
response = ProteinSubunitSearch().get(self.subunit_search)
self.assertEqual(set(response.keys()),set(['subunits']) )

def test_search_complex(self):
response = ProteinComplexSearch().get(self.complex_search)
self.assertEqual(set(response.keys()),set(['complexes']) )

#NOTE: Object Specifict Tests
def test_metabolite(self):
response = Metabolite().get(self.metabolite_id)
self.assertEqual(set(response.keys()),set(['object','concentrations','reactions']))

def test_subunit(self):
response = ProteinSubunit().get(self.subunit_id)
self.assertEqual(set(response.keys()),set(['object','abundances','interactions', 'complexes']))

def test_complex(self):
response = ProteinComplex().get(self.complex_id)
self.assertEqual(set(response.keys()),set(['object','subunits']))

def test_reaction(self):
response = Reaction().get(self.reaction_id)
self.assertEqual(set(response.keys()),set(['object','parameters']))


#NOTE: Data Specific Tests
def test_metabolite_concentrations(self):
response = MetaboliteConcentration().get(self.metabolite_id)
self.assertEqual(set(response.keys()),set(['concentrations']))

def test_protein_abundances(self):
response = ProteinAbundance().get(self.subunit_id)
self.assertEqual(set(response.keys()),set(['abundances']))

def test_reaction_parameters(self):
response = ReactionParameter().get(self.reaction_id)
self.assertEqual(set(response.keys()),set(['parameters']))

class TestAPIBlueprint(TestCase):

def create_app(self):
return app

def setUp(self):
self.general_search = 'adenine'
self.metabolite_search = 'adenine'
self.metabolite_search = 'guanine'
self.subunit_search = 'egfr'
self.complex_search = 'MCM complex'
self.metabolite_id = 72100
self.subunit_id = 5
self.complex_id = 69993
self.reaction_id = 70208

def tearDown(self):
pass
Expand All @@ -24,45 +95,53 @@ def test_search_general(self):
response = self.client.get('/api/v0/search/{0}'.format(self.general_search)).json
self.assertEqual(set(response.keys()),set(['complexes', 'metabolites', 'reactions', 'subunits']) )


def test_search_metabolite(self):
pass
with self.client:
response = self.client.get('/api/v0/search/metabolite/{0}'.format(self.metabolite_search)).json
self.assertEqual(set(response.keys()),set(['metabolites']) )

def test_search_subunit(self):
pass
response = self.client.get('/api/v0/search/subunit/{0}'.format(self.subunit_search)).json
self.assertEqual(set(response.keys()),set(['subunits']) )

def test_search_complex(self):
pass
response = self.client.get('/api/v0/search/complex/{0}'.format(self.complex_search)).json
self.assertEqual(set(response.keys()),set(['complexes']) )

#NOTE: Object Specifict Tests
def test_metabolite(self):
with self.client:
response = self.client.get('/api/v0/metabolite/{0}'.format(72100)).json
response = self.client.get('/api/v0/metabolite/{0}'.format(self.metabolite_id)).json
self.assertEqual(set(response.keys()),set(['object','concentrations','reactions']))

def test_subunit(self):
with self.client:
response = self.client.get('/api/v0/subunit/{0}'.format(5)).json
response = self.client.get('/api/v0/subunit/{0}'.format(self.subunit_id)).json
self.assertEqual(set(response.keys()),set(['object','abundances','interactions', 'complexes']))

def test_complex(self):
with self.client:
response = self.client.get('/api/v0/complex/{0}'.format(69993)).json
response = self.client.get('/api/v0/complex/{0}'.format(self.complex_id)).json
self.assertEqual(set(response.keys()),set(['object','subunits']))

def test_reaction(self):
with self.client:
response = self.client.get('/api/v0/reaction/{0}'.format(70208)).json
response = self.client.get('/api/v0/reaction/{0}'.format(self.reaction_id)).json
self.assertEqual(set(response.keys()),set(['object','parameters']))

#NOTE: Data Specific Tests
def test_metabolite_concentrations(self):
pass
with self.client:
response = self.client.get('/api/v0/concentrations/{0}'.format(self.metabolite_id)).json
self.assertEqual(set(response.keys()),set(['concentrations']))

def test_protein_abundances(self):
pass

def test_protein_interactions(self):
pass
with self.client:
response = self.client.get('/api/v0/abundances/{0}'.format(self.subunit_id)).json
self.assertEqual(set(response.keys()),set(['abundances']))

def test_reaction_parameters(self):
pass
with self.client:
response = self.client.get('/api/v0/parameters/{0}'.format(self.reaction_id)).json
self.assertEqual(set(response.keys()),set(['parameters']))

0 comments on commit d79c48f

Please sign in to comment.