Skip to content

Commit

Permalink
Finishing up handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
josenavas committed Sep 26, 2016
1 parent 9ece88e commit 9c64b76
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
21 changes: 16 additions & 5 deletions qiita_db/handlers/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
# The full license is in the file LICENSE, distributed with this software.
# -----------------------------------------------------------------------------

from json import loads, dumps

from tornado.web import HTTPError

from .oauth2 import OauthBaseHandler, authenticate_oauth
Expand Down Expand Up @@ -89,15 +91,24 @@ class CommandListHandler(OauthBaseHandler):
@authenticate_oauth
def post(self, name, version):
with qdb.sql_connection.TRN:
plugin = _get_plugin(name, version)

cmd_name = self.get_argument('name')
cmd_desc = self.get_argument('description')
req_params = self.get_argument('required_parameters')
opt_params = self.get_argument('optional_parameters')
dfl_param_set = self.get_argument('default_parameter_sets')
req_params = loads(self.get_argument('required_parameters'))
opt_params = loads(self.get_argument('optional_parameters'))
dflt_param_set = loads(self.get_argument('default_parameter_sets'))

parameters = req_params
parameters.update(opt_params)

cmd = qdb.software.Command.create(
plugin, cmd_name, cmd_desc, parameters)

# params = opt_params
# for pname, vals in
print cmd_name, cmd_desc, req_params, opt_params
for name, vals in dflt_param_set.items():
qdb.software.DefaultParameters.create(name, cmd, **vals)

self.finish()


Expand Down
19 changes: 11 additions & 8 deletions qiita_db/handlers/tests/test_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# -----------------------------------------------------------------------------

from unittest import main, TestCase
from json import loads
from json import loads, dumps

from tornado.web import HTTPError

Expand Down Expand Up @@ -72,13 +72,16 @@ def test_post(self):
data = {
'name': 'New Command',
'description': 'Command added for testing',
'required_parameters': {'in_data': ['artifact', ['FASTA']]},
'optional_parameters': {'param1': ['string', ''],
'param2': ['float', '1.5'],
'param3': ['bool', 'True']},
'default_parameter_sets': {
'dflt1': {'param1': 'test', 'param2': '2.4', 'param3': 'False'}
}}
'required_parameters': dumps(
{'in_data': ['artifact:["FASTA"]', None]}),
'optional_parameters': dumps({'param1': ['string', ''],
'param2': ['float', '1.5'],
'param3': ['boolean', 'True']}),
'default_parameter_sets': dumps(
{'dflt1': {'param1': 'test',
'param2': '2.4',
'param3': 'False'}})
}
obs = self.post('/qiita_db/plugins/QIIME/1.9.1/commands/', data=data,
headers=self.header)
self.assertEqual(obs.code, 200)
Expand Down

0 comments on commit 9c64b76

Please sign in to comment.