コード例 #1
0
 def test_merge_extra_filters_merges_different_val_types(self):
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         {'col': 'a', 'op': 'in', 'val': 'someval'},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #2
0
 def test_merge_extra_filters_ignores_empty_filters(self):
     form_data = {'extra_filters': [
         {'col': 'a', 'op': 'in', 'val': ''},
         {'col': 'B', 'op': '==', 'val': []},
     ]}
     expected = {'filters': []}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #3
0
 def test_merge_extra_filters(self):
     # does nothing if no extra filters
     form_data = {'A': 1, 'B': 2, 'c': 'test'}
     expected = {'A': 1, 'B': 2, 'c': 'test'}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # empty extra_filters
     form_data = {'A': 1, 'B': 2, 'c': 'test', 'extra_filters': []}
     expected = {'A': 1, 'B': 2, 'c': 'test', 'filters': []}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # copy over extra filters into empty filters
     form_data = {'extra_filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ]}
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters
     form_data = {'extra_filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ], 'filters': [{'col': 'D', 'op': '!=', 'val': ['G1', 'g2']}]}
     expected = {'filters': [
         {'col': 'D', 'op': '!=', 'val': ['G1', 'g2']},
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters and sets time options
     form_data = {'extra_filters': [
         {'col': '__from', 'op': 'in', 'val': '1 year ago'},
         {'col': '__to', 'op': 'in', 'val': None},
         {'col': '__time_col', 'op': 'in', 'val': 'birth_year'},
         {'col': '__time_grain', 'op': 'in', 'val': 'years'},
         {'col': 'A', 'op': 'like', 'val': 'hello'},
         {'col': '__time_origin', 'op': 'in', 'val': 'now'},
         {'col': '__granularity', 'op': 'in', 'val': '90 seconds'},
     ]}
     expected = {
         'filters': [{'col': 'A', 'op': 'like', 'val': 'hello'}],
         'since': '1 year ago',
         'granularity_sqla': 'birth_year',
         'time_grain_sqla': 'years',
         'granularity': '90 seconds',
         'druid_time_origin': 'now',
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #4
0
 def test_merge_extra_filters_ignores_nones(self):
     form_data = {
         'filters': [
             {'col': None, 'op': 'in', 'val': ''},
         ],
         'extra_filters': [
             {'col': 'B', 'op': '==', 'val': []},
         ],
     }
     expected = {
         'filters': [
             {'col': None, 'op': 'in', 'val': ''},
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #5
0
 def test_merge_extra_filters_ignores_equal_filters(self):
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #6
0
 def test_merge_extra_filters_ignores_equal_filters(self):
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': 'someval'},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': 'someval'},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #7
0
 def test_merge_extra_filters_ignores_empty_filters(self):
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ''
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': []
             },
         ]
     }
     expected = {'adhoc_filters': []}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #8
0
 def test_merge_extra_filters_adds_unequal_lists(self):
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2', 'g3']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2', 'c3']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2', 'g3']},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2', 'c3']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #9
0
 def test_merge_extra_filters_adds_unequal_lists(self):
     form_data = {
         'extra_filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2', 'g3']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2', 'c3']},
         ],
         'filters': [
             {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
             {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         ],
     }
     expected = {'filters': [
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2']},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
         {'col': 'a', 'op': 'in', 'val': ['g1', 'g2', 'g3']},
         {'col': 'B', 'op': '==', 'val': ['c1', 'c2', 'c3']},
     ]}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #10
0
 def test_merge_extra_filters_adds_unequal_lists(self):
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2', 'g3']
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2', 'c3']
             },
         ],
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2', 'g3'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2', 'c3'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #11
0
 def test_merge_extra_filters_merges_different_val_types(self):
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2']
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': 'someval',
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': 'someval',
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['g1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
             {
                 'clause': 'WHERE',
                 'comparator': 'someval',
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #12
0
 def test_merge_extra_filters(self):
     # does nothing if no extra filters
     form_data = {'A': 1, 'B': 2, 'c': 'test'}
     expected = {'A': 1, 'B': 2, 'c': 'test'}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # empty extra_filters
     form_data = {'A': 1, 'B': 2, 'c': 'test', 'extra_filters': []}
     expected = {'A': 1, 'B': 2, 'c': 'test', 'adhoc_filters': []}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # copy over extra filters into empty filters
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ]
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': 'someval',
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['G1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': '!=',
                 'subject': 'D',
             },
         ],
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': ['G1', 'g2'],
                 'expressionType': 'SIMPLE',
                 'operator': '!=',
                 'subject': 'D',
             },
             {
                 'clause': 'WHERE',
                 'comparator': 'someval',
                 'expressionType': 'SIMPLE',
                 'operator': 'in',
                 'subject': 'a',
             },
             {
                 'clause': 'WHERE',
                 'comparator': ['c1', 'c2'],
                 'expressionType': 'SIMPLE',
                 'operator': '==',
                 'subject': 'B',
             },
         ],
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters and sets time options
     form_data = {
         'extra_filters': [
             {
                 'col': '__time_range',
                 'op': 'in',
                 'val': '1 year ago :'
             },
             {
                 'col': '__time_col',
                 'op': 'in',
                 'val': 'birth_year'
             },
             {
                 'col': '__time_grain',
                 'op': 'in',
                 'val': 'years'
             },
             {
                 'col': 'A',
                 'op': 'like',
                 'val': 'hello'
             },
             {
                 'col': '__time_origin',
                 'op': 'in',
                 'val': 'now'
             },
             {
                 'col': '__granularity',
                 'op': 'in',
                 'val': '90 seconds'
             },
         ]
     }
     expected = {
         'adhoc_filters': [
             {
                 'clause': 'WHERE',
                 'comparator': 'hello',
                 'expressionType': 'SIMPLE',
                 'operator': 'like',
                 'subject': 'A',
             },
         ],
         'time_range':
         '1 year ago :',
         'granularity_sqla':
         'birth_year',
         'time_grain_sqla':
         'years',
         'granularity':
         '90 seconds',
         'druid_time_origin':
         'now',
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #13
0
 def test_merge_extra_filters(self):
     # does nothing if no extra filters
     form_data = {'A': 1, 'B': 2, 'c': 'test'}
     expected = {'A': 1, 'B': 2, 'c': 'test'}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # empty extra_filters
     form_data = {'A': 1, 'B': 2, 'c': 'test', 'extra_filters': []}
     expected = {'A': 1, 'B': 2, 'c': 'test', 'filters': []}
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # copy over extra filters into empty filters
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ]
     }
     expected = {
         'filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ]
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'filters': [{
             'col': 'D',
             'op': '!=',
             'val': ['G1', 'g2']
         }]
     }
     expected = {
         'filters': [
             {
                 'col': 'D',
                 'op': '!=',
                 'val': ['G1', 'g2']
             },
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ]
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     # adds extra filters to existing filters and sets time options
     form_data = {
         'extra_filters': [
             {
                 'col': '__from',
                 'op': 'in',
                 'val': '1 year ago'
             },
             {
                 'col': '__to',
                 'op': 'in',
                 'val': None
             },
             {
                 'col': '__time_col',
                 'op': 'in',
                 'val': 'birth_year'
             },
             {
                 'col': '__time_grain',
                 'op': 'in',
                 'val': 'years'
             },
             {
                 'col': 'A',
                 'op': 'like',
                 'val': 'hello'
             },
             {
                 'col': '__time_origin',
                 'op': 'in',
                 'val': 'now'
             },
             {
                 'col': '__granularity',
                 'op': 'in',
                 'val': '90 seconds'
             },
         ]
     }
     expected = {
         'filters': [{
             'col': 'A',
             'op': 'like',
             'val': 'hello'
         }],
         'since': '1 year ago',
         'granularity_sqla': 'birth_year',
         'time_grain_sqla': 'years',
         'granularity': '90 seconds',
         'druid_time_origin': 'now',
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
コード例 #14
0
 def test_merge_extra_filters_merges_different_val_types(self):
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2']
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
     }
     expected = {
         'filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2']
             },
         ]
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)
     form_data = {
         'extra_filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
         'filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2']
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
         ],
     }
     expected = {
         'filters': [
             {
                 'col': 'a',
                 'op': 'in',
                 'val': ['g1', 'g2']
             },
             {
                 'col': 'B',
                 'op': '==',
                 'val': ['c1', 'c2']
             },
             {
                 'col': 'a',
                 'op': 'in',
                 'val': 'someval'
             },
         ]
     }
     merge_extra_filters(form_data)
     self.assertEquals(form_data, expected)