Exemplo n.º 1
0
def create_tables_from_child_queries(user, connection, query, child_queries):
    for i, child_query in enumerate(child_queries):
        _child_query = _load_query(user, child_query['query_id'])

        params = child_query.get('params', {})
        if not params:
            params = get_default_params(_child_query)

        _rendered_child_query = pystache.render(_child_query.query_text,
                                                params)
        logger.debug('ResultsWithParams child query[{}]: {}'.format(
            i, _rendered_child_query))
        results, error = _child_query.data_source.query_runner.run_query(
            _rendered_child_query, user)

        if error:
            raise ChildQueryExecutionError(
                'Failed loading results for query id {}.'.format(
                    i, _child_query.id))

        results = json.loads(results)
        table_name = child_query['table']
        create_table(connection, table_name, results)
        query = query.replace(child_query['token'], table_name, 1)

    return query
Exemplo n.º 2
0
    def test_returns_query_when_user_has_view_only_access(self):
        ds = self.factory.create_data_source(
            group=self.factory.org.default_group, view_only=True)
        query = self.factory.create_query(data_source=ds)
        user = self.factory.create_user()

        loaded = _load_query(user, query.id)
        self.assertEqual(query, loaded)
Exemplo n.º 3
0
    def test_returns_query(self):
        query = self.factory.create_query()
        user = self.factory.create_user()

        loaded = _load_query(user, query.id)
        self.assertEquals(query, loaded)
Exemplo n.º 4
0
    def test_raises_exception_for_query_with_different_groups(self):
        ds = self.factory.create_data_source(group=self.factory.create_group())
        query = self.factory.create_query(data_source=ds)
        user = self.factory.create_user()

        self.assertRaises(PermissionError, lambda: _load_query(user, query.id))
Exemplo n.º 5
0
    def test_raises_exception_for_query_from_different_account(self):
        query = self.factory.create_query()
        user = self.factory.create_user(org=self.factory.create_org())

        self.assertRaises(PermissionError, lambda: _load_query(user, query.id))
Exemplo n.º 6
0
    def test_returns_query(self):
        query = self.factory.create_query()
        user = self.factory.create_user()

        loaded = _load_query(user, query.id)
        self.assertEqual(query, loaded)
Exemplo n.º 7
0
    def test_raises_exception_for_query_with_different_groups(self):
        ds = self.factory.create_data_source(group=self.factory.create_group())
        query = self.factory.create_query(data_source=ds)
        user = self.factory.create_user()

        self.assertRaises(PermissionError, lambda: _load_query(user, query.id))
Exemplo n.º 8
0
    def test_raises_exception_for_query_from_different_account(self):
        query = self.factory.create_query()
        user = self.factory.create_user(org=self.factory.create_org())

        self.assertRaises(PermissionError, lambda: _load_query(user, query.id))