示例#1
0
    def test_can_convert_scalar_types_from_string(self):
        m = model.DenormalizedStructureBuilder().with_members({
            'A': {
                'type': 'integer'
            },
            'B': {
                'type': 'string'
            },
            'C': {
                'type': 'float'
            },
            'D': {
                'type': 'boolean'
            },
            'E': {
                'type': 'boolean'
            },
        }).build_model()
        b = shorthand.BackCompatVisitor()

        params = {
            'A': '24',
            'B': '24',
            'C': '24.12345',
            'D': 'true',
            'E': 'false'
        }
        b.visit(params, m)
        self.assertEqual(params, {
            'A': 24,
            'B': '24',
            'C': float('24.12345'),
            'D': True,
            'E': False
        })
示例#2
0
    def test_empty_values_not_added(self):
        m = model.DenormalizedStructureBuilder().with_members({
            'A': {'type': 'boolean'},
        }).build_model()
        b = shorthand.BackCompatVisitor()

        params = {}
        b.visit(params, m)
        self.assertEqual(params, {})
示例#3
0
    def test_promote_to_list_of_ints(self):
        m = model.DenormalizedStructureBuilder().with_members({
            'A': {
                'type': 'list',
                'member': {'type': 'string'}
            },
        }).build_model()
        b = shorthand.BackCompatVisitor()

        params = {'A': 'foo'}
        b.visit(params, m)
        self.assertEqual(params, {'A': ['foo']})
示例#4
0
 def test_can_convert_list_of_integers(self):
     m = model.DenormalizedStructureBuilder().with_members({
         'A': {
             'type': 'list',
             'member': {
                 'type': 'integer',
             },
         },
     }).build_model()
     b = shorthand.BackCompatVisitor()
     params = {'A': ['1', '2']}
     b.visit(params, m)
     # We should have converted each list element to an integer
     # because the type of the list member is integer.
     self.assertEqual(params, {'A': [1, 2]})
示例#5
0
 def test_dont_promote_list_if_none_value(self):
     m = model.DenormalizedStructureBuilder().with_members({
         'A': {
             'type': 'list',
             'member': {
                 'type': 'structure',
                 'members': {
                     'Single': {'type': 'string'}
                 },
             },
         },
     }).build_model()
     b = shorthand.BackCompatVisitor()
     params = {}
     b.visit(params, m)
     self.assertEqual(params, {})
示例#6
0
 def __init__(self):
     self._parser = shorthand.ShorthandParser()
     self._visitor = shorthand.BackCompatVisitor()