Пример #1
0
 def test_more_complex(self):
     self.assertListEqual(
         json_process(
             {
                 'type':
                 'array',
                 'from': [{
                     'type': 'jsonpointer',
                     'value': '/data/test_field'
                 }, 3, {
                     'type': 'jsonpointer',
                     'value': '/data/test'
                 }],
                 'value': {
                     'type': 'object',
                     'value': {
                         'field': {
                             'type': 'jsonpointer',
                             'value': '/$value'
                         }
                     }
                 }
             }, {'data': {
                 'test_field': 'Hello',
                 'test': 'World',
             }}), [{
                 'field': 'Hello'
             }, {
                 'field': 3
             }, {
                 'field': 'World'
             }])
Пример #2
0
 def test_array(self):
     self.assertListEqual(json_process({
         'type': 'array',
         'from': {
             'type': 'jsonpointer',
             'value': '/data/items'
         },
         'value': {
             'type': 'object',
             'value': {
                 'id': {
                     'type': 'jsonpointer',
                     'value': '/$value/foreign'
                 },
                 'name': {
                     'type': 'jsonpointer',
                     'value': '/$value/name'
                 },
                 'index': {
                     'type': 'jsonpointer',
                     'value': '/$index0'
                 }
             }
         }
     }, {
         'data': {
             'items': [
                 {'foreign': '100', 'name': 'item1'},
                 {'foreign': '150', 'name': 'item2'}
             ]
         }
     }), [{'id': '100', 'name': 'item1', 'index': 0}, {'id': '150', 'name': 'item2', 'index': 1}])
Пример #3
0
    def test_cast_pop_if_empty(self):
        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'data': {
                            'type': 'object',
                            'value': {
                                'id': {
                                    'type': 'jsonpointer',
                                    'value': '/id'
                                }
                            },
                            'cast': 'pop_if_empty'
                        },
                        'flag': True
                    }
                }, {'id': 1}), {
                    'data': {
                        'id': 1
                    },
                    'flag': True
                })

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'data': {
                            'type': 'object',
                            'value': {
                                'id': {
                                    'type': 'jsonpointer',
                                    'value': '/id'
                                }
                            },
                            'cast': 'pop_if_empty'
                        },
                        'flag': True
                    }
                }, {'id': None}), {'flag': True})
Пример #4
0
 def test_list(self):
     self.assertListEqual(
         json_process(
             {
                 'type': 'array',
                 'from': [1, 2, 3],
                 'value': {
                     'type': 'jsonpointer',
                     'value': '/$value'
                 }
             }, {}), [1, 2, 3])
Пример #5
0
    def test_cast_int(self):
        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'integer'
                        }
                    }
                }, {'id': '1'}), {'id': 1})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'integer'
                        }
                    }
                }, {'id': '-1'}), {'id': -1})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'integer'
                        }
                    }
                }, {'id': None}), {'id': None})
Пример #6
0
    def test_no_array(self):
        self.assertListEqual(json_process({
            'type': 'array',
            'from': {
                'type': 'jsonpointer',
                'value': '/data/items'
            },
            'value': {
                'type': 'object',
                'value': {
                    'id': {
                        'type': 'jsonpointer',
                        'value': '/$value/foreign'
                    }
                }
            }
        }, {
            'data': {

            }
        }), [])
Пример #7
0
 def test_simple_return(self):
     self.assertEqual(json_process('Hello, world!', {}), 'Hello, world!')
     self.assertEqual(json_process({'a': 1}, {}), {'a': 1})
     self.assertEqual(json_process({'type': 'object', 'value': {'id': 1}}, {}), {'id': 1})
Пример #8
0
    def test_cast_null_if_empty(self):
        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id'
                        }
                    },
                    'cast': 'null_if_empty'
                }, {'id': 1}), {'id': 1})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id'
                        }
                    },
                    'cast': 'null_if_empty'
                }, {'id': None}), None)

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'value': {
                            'type': 'object',
                            'value': {
                                'id': {
                                    'type': 'jsonpointer',
                                    'value': '/id'
                                }
                            },
                            'cast': 'null_if_empty'
                        }
                    }
                }, {'id': None}), {'value': None})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'value': {
                            'type': 'object',
                            'value': {
                                'id': {
                                    'type': 'jsonpointer',
                                    'value': '/id'
                                }
                            },
                            'cast': 'null_if_empty'
                        }
                    },
                    'cast': 'null_if_empty'
                }, {'id': None}), None)

        self.assertEqual(
            json_process(
                {
                    'type': 'array',
                    'from': [],
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id'
                        }
                    },
                    'cast': 'null_if_empty'
                }, {}), None)

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'null_if_empty'
                        }
                    }
                }, {'id': None}), {'id': None})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'null_if_empty'
                        }
                    }
                }, {'id': False}), {'id': False})

        self.assertEqual(
            json_process(
                {
                    'type': 'object',
                    'value': {
                        'id': {
                            'type': 'jsonpointer',
                            'value': '/id',
                            'cast': 'null_if_empty'
                        }
                    }
                }, {'id': 0}), {'id': 0})