Example #1
0
    def test_parse_int_list(self):
        '''Tests parsing a required list of int parameters that is provided via GET.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['1', '2'])

        self.assertListEqual(rest_util.parse_int_list(request, 'test'), [1, 2])
Example #2
0
    def test_parse_int_list_accepted_all(self):
        '''Tests parsing a list of int parameters where all values are acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['1', '2'])

        self.assertListEqual(rest_util.parse_int_list(request, 'test', accepted_values=[1, 2]), [1, 2])
Example #3
0
    def test_parse_string_list_default(self):
        '''Tests parsing a required list of string parameters that are provided via default value.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['value1'])

        self.assertEqual(rest_util.parse_string_list(request, 'test2', ['value2', 'value3']), ['value2', 'value3'])
Example #4
0
    def test_parse_string_list_missing(self):
        '''Tests parsing a required list of string parameters that are missing.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['value1', 'value2'])

        self.assertRaises(BadParameter, rest_util.parse_string_list, request, 'test2')
Example #5
0
    def test_parse_string_list_accepted_none(self):
        '''Tests parsing a list of string parameters where none of the values are acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['value1', 'value2'])

        self.assertRaises(BadParameter, rest_util.parse_string_list, request, 'test', accepted_values=['value'])
Example #6
0
    def test_parse_string_list_optional(self):
        '''Tests parsing an optional list of string parameters that are missing.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['value1'])

        self.assertListEqual(rest_util.parse_string_list(request, 'test2', required=False), [])
Example #7
0
    def test_parse_int_list_accepted_partial(self):
        '''Tests parsing a list of int parameters where only some values are acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.setlist('test', ['1', '2'])

        self.assertRaises(BadParameter, rest_util.parse_int_list, request, 'test', accepted_values=[1])
Example #8
0
 def test_parse_string_default(self):
     '''Tests parsing an optional string parameter that is provided via default value.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'value1',
     })
     self.assertEqual(rest_util.parse_string(request, 'test2', 'value2'), 'value2')
Example #9
0
 def test_parse_datetime_missing_timezone(self):
     '''Tests parsing an ISO datetime missing a timezone.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '2015-01-01T00:00:00',
     })
     self.assertRaises(BadParameter, rest_util.parse_datetime, request, 'test')
Example #10
0
 def test_parse_datetime_optional(self):
     '''Tests parsing an optional ISO datetime parameter that is missing.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'value1',
     })
     self.assertIsNone(rest_util.parse_datetime(request, 'test2', required=False))
Example #11
0
 def test_parse_datetime_missing(self):
     '''Tests parsing a required ISO datetime parameter that is missing.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '10',
     })
     self.assertRaises(BadParameter, rest_util.parse_datetime, request, 'test2')
Example #12
0
 def test_parse_float_invalid(self):
     '''Tests parsing a required float parameter that is not a valid number.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'abc',
     })
     self.assertRaises(BadParameter, rest_util.parse_float, request, 'test')
Example #13
0
 def test_parse_duration(self):
     '''Tests parsing a required ISO duration parameter that is provided via GET.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'PT3H0M0S',
     })
     self.assertEqual(rest_util.parse_duration(request, 'test'), datetime.timedelta(0, 10800))
Example #14
0
 def test_parse_bool_default(self):
     '''Tests parsing an optional bool parameter that is provided via default value.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'true',
     })
     self.assertFalse(rest_util.parse_bool(request, 'test2', False))
Example #15
0
 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)
Example #16
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)
Example #17
0
 def test_has_params_partial(self):
     '''Tests checking parameter presence when some are given.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test1': 'value1',
     })
     self.assertFalse(rest_util.has_params(request, 'test1', 'test2'))
Example #18
0
 def test_parse_int_list_default(self):
     '''Tests parsing a required list of int parameters that are provided via default value.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '1',
     })
     self.assertEqual(rest_util.parse_int_list(request, 'test2', ['2', '3']), [2, 3])
Example #19
0
 def test_parse_timestamp_datetime(self):
     '''Tests parsing a valid ISO datetime.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '2015-01-01T00:00:00Z',
     })
     self.assertEqual(rest_util.parse_timestamp(request, 'test'), datetime.datetime(2015, 1, 1, tzinfo=timezone.utc))
Example #20
0
 def test_parse_int(self):
     '''Tests parsing a required int parameter that is provided via GET.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '10',
     })
     self.assertEqual(rest_util.parse_int(request, 'test'), 10)
Example #21
0
 def test_parse_datetime_invalid(self):
     '''Tests parsing a required ISO datetime parameter that is formatted incorrectly.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '20150101T00:00:00Z',
     })
     self.assertRaises(BadParameter, rest_util.parse_datetime, request, 'test')
Example #22
0
 def test_parse_int_list_optional(self):
     '''Tests parsing an optional list of int parameters that are missing.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '1',
     })
     self.assertListEqual(rest_util.parse_int_list(request, 'test2', required=False), [])
Example #23
0
 def test_parse_datetime_default(self):
     '''Tests parsing a required ISO datetime parameter that is provided via default value.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '2015-01-01T00:00:00Z',
     })
     default_value = datetime.datetime(2015, 2, 10, tzinfo=timezone.utc)
     self.assertEqual(rest_util.parse_datetime(request, 'test2', default_value), default_value)
Example #24
0
    def test_parse_float_accepted_none(self):
        '''Tests parsing a float parameter where the value is not acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.update({
            'test': '1.0',
        })

        self.assertRaises(BadParameter, rest_util.parse_float, request, 'test', accepted_values=[5.0, 10.0])
Example #25
0
    def test_parse_int_accepted_all(self):
        '''Tests parsing an int parameter where the value is acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.update({
            'test': '1',
        })

        self.assertEqual(rest_util.parse_int(request, 'test', accepted_values=[1, 2, 3]), 1)
Example #26
0
    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)
Example #27
0
    def test_parse_string_accepted_none(self):
        '''Tests parsing a string parameter where the value is not acceptable.'''
        request = MagicMock(Request)
        request.QUERY_PARAMS = QueryDict('', mutable=True)
        request.QUERY_PARAMS.update({
            'test': 'value1',
        })

        self.assertRaises(BadParameter, rest_util.parse_string, request, 'test', accepted_values=['value'])
Example #28
0
 def test_parse_int_list_missing(self):
     '''Tests parsing a required list of int parameters that are missing.'''
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': '1',
         'test': '2',
     })
     self.assertRaises(BadParameter, rest_util.parse_int_list, request, 'test2')
Example #29
0
 def test_parse_timestamp_duration(self, mock_now):
     '''Tests parsing a valid ISO duration.'''
     mock_now.return_value = datetime.datetime(2015, 1, 1, 10, tzinfo=timezone.utc)
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': 'PT3H0M0S',
     })
     self.assertEqual(rest_util.parse_timestamp(request, 'test'),
                      datetime.datetime(2015, 1, 1, 7, tzinfo=timezone.utc))
Example #30
0
 def test_parse_dict(self):
     '''Tests parsing a dictionary.'''
     result = {
         'name': 'value',
     }
     request = MagicMock(Request)
     request.QUERY_PARAMS = QueryDict('', mutable=True)
     request.QUERY_PARAMS.update({
         'test': result,
     })
     self.assertDictEqual(rest_util.parse_dict(request, 'test'), result)