def test_parse_float_zero(self): """Tests parsing an optional float parameter zero instead of using the default value.""" request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': '0.0', }) self.assertEqual(rest_util.parse_float(request, 'test', 10.1), 0.0)
def test_parse_float_post(self): """Tests parsing a required float parameter that is provided via POST.""" request = MagicMock(Request) request.data = QueryDict('', mutable=True) request.data.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test'), 10.1)
def test_parse_float_post(self): '''Tests parsing a required float parameter that is provided via POST.''' request = MagicMock(Request) request.DATA = QueryDict('', mutable=True) request.DATA.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test'), 10.1)
def test_parse_float_default(self): """Tests parsing a required float parameter that is provided via default value.""" request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test2', 20.1), 20.1)
def test_parse_float_optional(self): '''Tests parsing an optional float parameter that is missing.''' request = MagicMock(Request) request.QUERY_PARAMS = QueryDict('', mutable=True) request.QUERY_PARAMS.update({ 'test': 'value1', }) self.assertIsNone(rest_util.parse_float(request, 'test2', required=False))
def test_parse_float_zero(self): '''Tests parsing an optional float parameter zero instead of using the default value.''' request = MagicMock(Request) request.QUERY_PARAMS = QueryDict('', mutable=True) request.QUERY_PARAMS.update({ 'test': '0.0', }) self.assertEqual(rest_util.parse_float(request, 'test', 10.1), 0.0)
def test_parse_float_default(self): '''Tests parsing a required float parameter that is provided via default value.''' request = MagicMock(Request) request.QUERY_PARAMS = QueryDict('', mutable=True) request.QUERY_PARAMS.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test2', 20.1), 20.1)
def test_parse_float(self): '''Tests parsing a required float parameter that is provided via GET.''' request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test'), 10.1)
def test_parse_float(self): """Tests parsing a required float parameter that is provided via GET.""" request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': '10.1', }) self.assertEqual(rest_util.parse_float(request, 'test'), 10.1)
def test_parse_float_optional(self): """Tests parsing an optional float parameter that is missing.""" request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': 'value1', }) self.assertIsNone( rest_util.parse_float(request, 'test2', required=False))
def test_parse_float_valid(self): '''Tests parsing a float parameter where the value is acceptable.''' request = MagicMock(Request) request.QUERY_PARAMS = QueryDict('', mutable=True) request.QUERY_PARAMS.update({ 'test': '1.1', }) self.assertEqual(rest_util.parse_float(request, 'test', accepted_values=[1.1, 2.2, 3.3]), 1.1)
def test_parse_float_valid(self): """Tests parsing a float parameter where the value is acceptable.""" request = MagicMock(Request) request.query_params = QueryDict('', mutable=True) request.query_params.update({ 'test': '1.1', }) self.assertEqual( rest_util.parse_float(request, 'test', accepted_values=[1.1, 2.2, 3.3]), 1.1)
def post(self, request): '''Creates a new JobType and returns its ID in JSON form :param request: the HTTP POST request :type request: :class:`rest_framework.request.Request` :rtype: :class:`rest_framework.response.Response` :returns: the HTTP response to send back to the user ''' name = rest_util.parse_string(request, u'name') version = rest_util.parse_string(request, u'version') title = rest_util.parse_string(request, u'title', default_value=u'Unknown Job Type') description = rest_util.parse_string(request, u'description') category = rest_util.parse_string(request, u'category', default_value=u'unknown') author_name = rest_util.parse_string(request, u'author_name', required=False) author_url = rest_util.parse_string(request, u'author_url', required=False) is_system = False is_long_running = False is_active = rest_util.parse_bool(request, u'is_active', default_value=True) is_operational = rest_util.parse_bool(request, u'is_operational', default_value=True) is_paused = rest_util.parse_bool(request, u'is_paused', default_value=False) requires_cleanup = True uses_docker = True docker_privileged = rest_util.parse_bool(request, u'docker_privileged', default_value=False) docker_image = rest_util.parse_string(request, u'docker_image') interface = rest_util.parse_dict(request, u'interface') error_mapping = rest_util.parse_dict(request, u'error_mapping', default_value={}) priority = rest_util.parse_int(request, u'priority', default_value=260) timeout = rest_util.parse_int(request, u'timeout', default_value=1800) max_tries = rest_util.parse_int(request, u'max_tries', default_value=3) cpus_required = rest_util.parse_float(request, u'cpus_required', default_value=1) mem_required = rest_util.parse_float(request, u'mem_required', default_value=5120) disk_out_const_required = rest_util.parse_float(request, u'disk_out_const_required', default_value=0) disk_out_mult_required = rest_util.parse_float(request, u'disk_out_mult_required', default_value=0) icon_code = rest_util.parse_string(request, u'icon_code', default_value=u'f013') try: try: job_type = JobType.objects.get(name=name, version=version) job_type.description = description job_type.docker_image = docker_image job_type.interface = interface job_type.priority = priority job_type.timeout = timeout job_type.max_tries = max_tries job_type.cpus_required = cpus_required job_type.mem_required = mem_required job_type.disk_out_const_required = disk_out_const_required except JobType.DoesNotExist: job_type = JobType.objects.create_job_type(name, version, description, docker_image, interface, priority, timeout, max_tries, cpus_required, mem_required, disk_out_const_required, None) job_type.title = title job_type.category = category job_type.author_name = author_name job_type.author_url = author_url job_type.is_system = is_system job_type.is_long_running = is_long_running job_type.is_active = is_active job_type.is_operational = is_operational job_type.is_paused = is_paused job_type.requires_cleanup = requires_cleanup job_type.uses_docker = uses_docker job_type.docker_privileged = docker_privileged job_type.error_mapping = error_mapping job_type.icon_code = icon_code job_type.disk_out_mult_required = disk_out_mult_required job_type.save() except InvalidInterfaceDefinition: raise rest_util.BadParameter('Interface definition failed to validate.') return Response({'job_type_id': job_type.id}, status=status.HTTP_200_OK)