From commits-return-799-archive-asf-public=cust-asf.ponee.io@superset.incubator.apache.org Wed Mar 21 21:13:44 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id CA786180651 for ; Wed, 21 Mar 2018 21:13:43 +0100 (CET) Received: (qmail 47559 invoked by uid 500); 21 Mar 2018 20:13:42 -0000 Mailing-List: contact commits-help@superset.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@superset.incubator.apache.org Delivered-To: mailing list commits@superset.incubator.apache.org Received: (qmail 47550 invoked by uid 99); 21 Mar 2018 20:13:42 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Mar 2018 20:13:42 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 220FB80910; Wed, 21 Mar 2018 20:13:42 +0000 (UTC) Date: Wed, 21 Mar 2018 20:13:42 +0000 To: "commits@superset.apache.org" Subject: [incubator-superset] branch master updated: Cache the query string (#4633) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <152166322197.8076.535722719076215905@gitbox.apache.org> From: graceguo@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: incubator-superset X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: fc47729233e7ce44e225edbeb628f6a5f0376eda X-Git-Newrev: 33aa976e3d467847d4bc2940417e0e5ec873eb3a X-Git-Rev: 33aa976e3d467847d4bc2940417e0e5ec873eb3a X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. graceguo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-superset.git The following commit(s) were added to refs/heads/master by this push: new 33aa976 Cache the query string (#4633) 33aa976 is described below commit 33aa976e3d467847d4bc2940417e0e5ec873eb3a Author: Jeffrey Wang AuthorDate: Wed Mar 21 16:13:36 2018 -0400 Cache the query string (#4633) * Cache the query string * misc linter --- superset/viz.py | 7 +++++-- tests/cache_tests.py | 41 +++++++++++++++++++++++++++++++++++++++++ tests/superset_test_config.py | 1 + 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/superset/viz.py b/superset/viz.py index 0c55262..f879639 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -315,9 +315,11 @@ class BaseViz(object): try: cache_value = pkl.loads(cache_value) df = cache_value['df'] - is_loaded = True - self._any_cache_key = cache_key + self.query = cache_value['query'] self._any_cached_dttm = cache_value['dttm'] + self._any_cache_key = cache_key + self.status = utils.QueryStatus.SUCCESS + is_loaded = True except Exception as e: logging.exception(e) logging.error('Error reading cache: ' + @@ -346,6 +348,7 @@ class BaseViz(object): cache_value = dict( dttm=cached_dttm, df=df if df is not None else None, + query=self.query, ) cache_value = pkl.dumps( cache_value, protocol=pkl.HIGHEST_PROTOCOL) diff --git a/tests/cache_tests.py b/tests/cache_tests.py new file mode 100644 index 0000000..27a2c5f --- /dev/null +++ b/tests/cache_tests.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +"""Unit tests for Superset with caching""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import json + +from superset import cache, db, utils +from .base_tests import SupersetTestCase + + +class CacheTests(SupersetTestCase): + + def __init__(self, *args, **kwargs): + super(CacheTests, self).__init__(*args, **kwargs) + + def setUp(self): + cache.clear() + + def tearDown(self): + cache.clear() + + def test_cache_value(self): + self.login(username='admin') + slc = self.get_slice('Girls', db.session) + + json_endpoint = ( + '/superset/explore_json/{}/{}/' + .format(slc.datasource_type, slc.datasource_id) + ) + resp = self.get_json_resp( + json_endpoint, {'form_data': json.dumps(slc.viz.form_data)}) + resp_from_cache = self.get_json_resp( + json_endpoint, {'form_data': json.dumps(slc.viz.form_data)}) + self.assertFalse(resp['is_cached']) + self.assertTrue(resp_from_cache['is_cached']) + self.assertEqual(resp_from_cache['status'], utils.QueryStatus.SUCCESS) + self.assertEqual(resp['data'], resp_from_cache['data']) + self.assertEqual(resp['query'], resp_from_cache['query']) diff --git a/tests/superset_test_config.py b/tests/superset_test_config.py index 4d13744..3076a05 100644 --- a/tests/superset_test_config.py +++ b/tests/superset_test_config.py @@ -23,6 +23,7 @@ PUBLIC_ROLE_LIKE_GAMMA = True AUTH_ROLE_PUBLIC = 'Public' EMAIL_NOTIFICATIONS = False +CACHE_CONFIG = {'CACHE_TYPE': 'simple'} class CeleryConfig(object): BROKER_URL = 'redis://localhost' -- To stop receiving notification emails like this one, please contact graceguo@apache.org.