Example #1
0
    def test_simplify_test_accounts(self):
        self.team.test_account_filters = [
            {"key": "email", "value": "@posthog.com", "operator": "not_icontains", "type": "person"}
        ]
        self.team.save()

        data = {"properties": [{"key": "attr", "value": "some_val"}]}

        filter = Filter(data=data, team=self.team)
        self.assertEqual(
            filter.properties_to_dict(),
            {
                "properties": {
                    "type": "AND",
                    "values": [{"key": "attr", "value": "some_val", "operator": None, "type": "event"},],
                },
            },
        )
        self.assertTrue(filter.is_simplified)

        filter = Filter(data={**data, FILTER_TEST_ACCOUNTS: True}, team=self.team)

        self.assertEqual(
            filter.properties_to_dict(),
            {
                "properties": {
                    "type": "AND",
                    "values": [
                        {
                            "type": "AND",
                            "values": [
                                {"key": "email", "value": "@posthog.com", "operator": "not_icontains", "type": "person"}
                            ],
                        },
                        {
                            "type": "AND",
                            "values": [{"key": "attr", "value": "some_val", "operator": None, "type": "event"}],
                        },
                    ],
                }
            },
        )
        self.assertTrue(filter.is_simplified)

        self.assertEqual(
            filter.simplify(self.team).properties_to_dict(),
            {
                "properties": {
                    "type": "AND",
                    "values": [
                        {
                            "type": "AND",
                            "values": [
                                {"key": "email", "value": "@posthog.com", "operator": "not_icontains", "type": "person"}
                            ],
                        },
                        {
                            "type": "AND",
                            "values": [{"key": "attr", "value": "some_val", "operator": None, "type": "event"}],
                        },
                    ],
                }
            },
        )