def test_filter_values_adhoc_filters(self) -> None:
        with app.test_request_context(
                data={
                    "form_data":
                    json.dumps({
                        "adhoc_filters": [{
                            "clause": "WHERE",
                            "comparator": "foo",
                            "expressionType": "SIMPLE",
                            "operator": "in",
                            "subject": "name",
                        }],
                    })
                }):
            self.assertEquals(filter_values("name"), ["foo"])

        with app.test_request_context(
                data={
                    "form_data":
                    json.dumps({
                        "adhoc_filters": [{
                            "clause": "WHERE",
                            "comparator": ["foo", "bar"],
                            "expressionType": "SIMPLE",
                            "operator": "in",
                            "subject": "name",
                        }],
                    })
                }):
            self.assertEquals(filter_values("name"), ["foo", "bar"])
 def test_filter_values_extra_filters(self) -> None:
     with app.test_request_context(
         data={
             "form_data": json.dumps(
                 {"extra_filters": [{"col": "name", "op": "in", "val": "foo"}]}
             )
         }
     ):
         self.assertEqual(filter_values("name"), ["foo"])
    def test_filter_values_extra_filters(self) -> None:
        request = mock.MagicMock()

        request.form = {
            "form_data": json.dumps(
                {"extra_filters": [{"col": "name", "op": "in", "val": "foo"}]}
            )
        }

        with mock.patch("superset.jinja_context.request", request):
            self.assertEquals(filter_values("name"), ["foo"])
    def test_filter_values_adhoc_filters(self) -> None:
        request = mock.MagicMock()

        request.form = {
            "form_data": json.dumps(
                {
                    "adhoc_filters": [
                        {
                            "clause": "WHERE",
                            "comparator": "foo",
                            "expressionType": "SIMPLE",
                            "operator": "in",
                            "subject": "name",
                        }
                    ],
                }
            )
        }

        with mock.patch("superset.jinja_context.request", request):
            self.assertEquals(filter_values("name"), ["foo"])

        request.form = {
            "form_data": json.dumps(
                {
                    "adhoc_filters": [
                        {
                            "clause": "WHERE",
                            "comparator": ["foo", "bar"],
                            "expressionType": "SIMPLE",
                            "operator": "in",
                            "subject": "name",
                        }
                    ],
                }
            )
        }

        with mock.patch("superset.jinja_context.request", request):
            self.assertEquals(filter_values("name"), ["foo", "bar"])
    def test_filter_values_macro(self):
        form_data1 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo']},
            ],
            'filters': [
                {'col': 'my_special_filter2', 'op': 'in', 'val': ['bar']},
            ],
        }

        form_data2 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo', 'bar']},
            ],
        }

        form_data3 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo', 'bar']},
            ],
            'filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['savage']},
            ],
        }

        data1 = {'form_data': json.dumps(form_data1)}
        data2 = {'form_data': json.dumps(form_data2)}
        data3 = {'form_data': json.dumps(form_data3)}

        with app.test_request_context(data=data1):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['foo'])

            filter_values = jinja_context.filter_values('my_special_filter2')
            self.assertEqual(filter_values, ['bar'])

            filter_values = jinja_context.filter_values('')
            self.assertEqual(filter_values, [])

        with app.test_request_context(data=data2):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['foo', 'bar'])

        with app.test_request_context(data=data3):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['savage', 'foo', 'bar'])

        with app.test_request_context():
            filter_values = jinja_context.filter_values('nonexistent_filter', 'foo')
            self.assertEqual(filter_values, ['foo'])
Beispiel #6
0
    def test_filter_values_macro(self):
        form_data1 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo']},
            ],
            'filters': [
                {'col': 'my_special_filter2', 'op': 'in', 'val': ['bar']},
            ],
        }

        form_data2 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo', 'bar']},
            ],
        }

        form_data3 = {
            'extra_filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['foo', 'bar']},
            ],
            'filters': [
                {'col': 'my_special_filter', 'op': 'in', 'val': ['savage']},
            ],
        }

        data1 = {'form_data': json.dumps(form_data1)}
        data2 = {'form_data': json.dumps(form_data2)}
        data3 = {'form_data': json.dumps(form_data3)}

        with app.test_request_context(data=data1):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['foo'])

            filter_values = jinja_context.filter_values('my_special_filter2')
            self.assertEqual(filter_values, ['bar'])

            filter_values = jinja_context.filter_values('')
            self.assertEqual(filter_values, [])

        with app.test_request_context(data=data2):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['foo', 'bar'])

        with app.test_request_context(data=data3):
            filter_values = jinja_context.filter_values('my_special_filter')
            self.assertEqual(filter_values, ['savage', 'foo', 'bar'])

        with app.test_request_context():
            filter_values = jinja_context.filter_values('nonexistent_filter', 'foo')
            self.assertEqual(filter_values, ['foo'])
    def test_filter_values_no_default(self) -> None:
        request = mock.MagicMock()
        request.form = {}

        with mock.patch("superset.jinja_context.request", request):
            self.assertEquals(filter_values("name"), [])
 def test_filter_values_no_default(self) -> None:
     with app.test_request_context():
         self.assertEquals(filter_values("name"), [])
Beispiel #9
0
    def test_filter_values_macro(self):
        form_data1 = {
            "extra_filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": ["foo"]
            }],
            "filters": [{
                "col": "my_special_filter2",
                "op": "in",
                "val": ["bar"]
            }],
        }

        form_data2 = {
            "extra_filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": ["foo", "bar"]
            }]
        }

        form_data3 = {
            "extra_filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": ["foo", "bar"]
            }],
            "filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": ["savage"]
            }],
        }

        form_data4 = {
            "extra_filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": "foo"
            }],
            "filters": [{
                "col": "my_special_filter",
                "op": "in",
                "val": "savage"
            }],
        }

        data1 = {"form_data": json.dumps(form_data1)}
        data2 = {"form_data": json.dumps(form_data2)}
        data3 = {"form_data": json.dumps(form_data3)}
        data4 = {"form_data": json.dumps(form_data4)}

        with app.test_request_context(data=data1):
            filter_values = jinja_context.filter_values("my_special_filter")
            self.assertEqual(filter_values, ["foo"])

            filter_values = jinja_context.filter_values("my_special_filter2")
            self.assertEqual(filter_values, ["bar"])

            filter_values = jinja_context.filter_values("")
            self.assertEqual(filter_values, [])

        with app.test_request_context(data=data2):
            filter_values = jinja_context.filter_values("my_special_filter")
            self.assertEqual(filter_values, ["foo", "bar"])

        with app.test_request_context(data=data3):
            filter_values = jinja_context.filter_values("my_special_filter")
            self.assertEqual(filter_values, ["savage", "foo", "bar"])

        with app.test_request_context():
            filter_values = jinja_context.filter_values(
                "nonexistent_filter", "foo")
            self.assertEqual(filter_values, ["foo"])

        with app.test_request_context(data=data4):
            filter_values = jinja_context.filter_values("my_special_filter")
            self.assertEqual(filter_values, ["savage", "foo"])
 def test_filter_values_default(self) -> None:
     with app.test_request_context():
         self.assertEqual(filter_values("name", "foo"), ["foo"])