示例#1
0
 def test_simple_filters_2(self):
     conditions = filters.adapt_filters([('id', 'in', [123, 456])])
     self.assertEqual(conditions,
         {
             'logical_operator': 'and',
             'conditions': [
                 {
                     'path': 'id',
                     'relation': 'in',
                     'values': [123, 456],
                 }
             ],
         }
     )
     self.assertRoundTrip(conditions)
示例#2
0
    def test_complex_filters(self):

        conditions = filters.adapt_filters([
            ["sg_status_list", "is", "ip"],
            {
                "filter_operator": "any",
                "filters": [
                    [ "assets", "is", { "type": "Asset", "id": 9 } ],
                    [ "assets", "is", { "type": "Asset", "id": 23 } ]
                ]
            }
        ])
        self.assertEqual(conditions,
            {
                'logical_operator': 'and',
                'conditions': [
                    {
                        'path': 'sg_status_list',
                        'relation': 'is',
                        'values': ['ip'],
                    }, {
                        'logical_operator': 'or',
                        'conditions': [
                            {
                                'path': 'assets',
                                'relation': 'is',
                                'values': [{ "type": "Asset", "id": 9 }],
                            },
                            {
                                'path': 'assets',
                                'relation': 'is',
                                'values': [{ "type": "Asset", "id": 23 }],
                            }
                        ]
                    }
                ],
            }
        )
        self.assertRoundTrip(conditions)
示例#3
0
 def assertRoundTrip(self, conditions):
     self.assertEqual(filters.adapt_filters(conditions), conditions)