0001-schemas-handle-case-of-an-unique-IS-NULL-filter-3247.patch
bijoe/schemas.py | ||
---|---|---|
276 | 276 |
values = [int(v) for v in filter_values] |
277 | 277 |
else: |
278 | 278 |
values = filter_values |
279 |
s = ', '.join(['%s'] * len(values)) |
|
280 |
if self.filter_expression: |
|
281 |
expression = self.filter_expression % s |
|
282 |
else: |
|
283 |
expression = '%s IN (%s)' % (value, s) |
|
279 |
expressions = [] |
|
280 |
if values: |
|
281 |
s = ', '.join(['%s'] * len(values)) |
|
282 |
if self.filter_expression: |
|
283 |
expressions.append(self.filter_expression % s) |
|
284 |
else: |
|
285 |
expressions.append('%s IN (%s)' % (value, s)) |
|
284 | 286 |
if is_none: |
285 |
expression = '((%s) OR (%s IS NULL))' % (expression, value) |
|
287 |
expressions.append('%s IS NULL' % value) |
|
288 |
if len(expressions) == 0: |
|
289 |
expression = 'FALSE' |
|
290 |
elif len(expressions) == 1: |
|
291 |
expression = expressions[0] |
|
292 |
else: |
|
293 |
expression = ' OR '.join('(%s)' % e for e in expressions) |
|
286 | 294 |
return expression, values |
287 | 295 | |
288 | 296 |
tests/test_schema1.py | ||
---|---|---|
87 | 87 |
assert get_table(response) == [['String', 'a', 'b', 'Aucun(e)'], ['number of rows', '11', '2', '1']] |
88 | 88 | |
89 | 89 | |
90 |
def test_item_dimension(schema1, app, admin): |
|
91 |
login(app, admin) |
|
92 |
response = app.get('/').follow() |
|
93 |
response = response.click('Facts 1') |
|
94 |
form = response.form |
|
95 |
form.set('representation', 'table') |
|
96 |
form.set('measure', 'simple_count') |
|
97 |
form.set('drilldown_x', 'outersubcategory') |
|
98 |
response = form.submit('visualize') |
|
99 |
assert get_table(response) == [ |
|
100 |
['Outer SubCategory', u'sub\xe94', u'sub\xe95', u'sub\xe96', u'sub\xe98', |
|
101 |
u'sub\xe99', u'sub\xe97', u'sub\xe92', u'sub\xe93', u'sub\xe91', '0'], |
|
102 |
['number of rows', '0', '0', '0', '0', '0', '0', '0', '1', '15', '1'] |
|
103 |
] |
|
104 |
form.set('filter__outersubcategory', ['__none__']) |
|
105 |
response = form.submit('visualize') |
|
106 |
assert get_table(response) == [['Outer SubCategory', '0'], ['number of rows', '1']] |
|
107 | ||
108 | ||
90 | 109 |
def test_yearmonth_drilldown(schema1, app, admin): |
91 | 110 |
login(app, admin) |
92 | 111 |
response = app.get('/').follow() |
93 |
- |