diff --git a/.github/workflows/superset-python-unittest.yml b/.github/workflows/superset-python-unittest.yml index 64db4d3e649..1ff07375d47 100644 --- a/.github/workflows/superset-python-unittest.yml +++ b/.github/workflows/superset-python-unittest.yml @@ -37,7 +37,7 @@ jobs: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'requirements/testing.txt' -# TODO: separated requiermentes.txt file just for unit tests +# TODO: separated requirements.txt file just for unit tests - name: Install dependencies if: steps.check.outcome == 'failure' uses: ./.github/actions/cached-dependencies diff --git a/scripts/python_tests.sh b/scripts/python_tests.sh index 0554f8ca65a..6491a3f6f9d 100755 --- a/scripts/python_tests.sh +++ b/scripts/python_tests.sh @@ -32,4 +32,4 @@ superset init echo "Running tests" -pytest --durations-min=2 --maxfail=1 --cov-report= --cov=superset "$@" +pytest --durations-min=2 --maxfail=1 --cov-report= --cov=superset ./tests/integration_tests "$@" diff --git a/superset/charts/schemas.py b/superset/charts/schemas.py index 8a82e364be4..e7e9294917f 100644 --- a/superset/charts/schemas.py +++ b/superset/charts/schemas.py @@ -1196,6 +1196,12 @@ class ChartDataQueryContextSchema(Schema): query_context_factory: Optional[QueryContextFactory] = None datasource = fields.Nested(ChartDataDatasourceSchema) queries = fields.List(fields.Nested(ChartDataQueryObjectSchema)) + custom_cache_timeout = fields.Integer( + description="Override the default cache timeout", + required=False, + allow_none=True, + ) + force = fields.Boolean( description="Should the queries be forced to load from the source. " "Default: `false`", @@ -1257,7 +1263,7 @@ class ChartDataResponseResult(Schema): ) cache_timeout = fields.Integer( description="Cache timeout in following order: custom timeout, datasource " - "timeout, default config timeout.", + "timeout, cache default timeout, config default cache timeout.", required=True, allow_none=True, ) diff --git a/superset/common/query_context_processor.py b/superset/common/query_context_processor.py index 8078868493b..606836b1de8 100644 --- a/superset/common/query_context_processor.py +++ b/superset/common/query_context_processor.py @@ -410,6 +410,12 @@ class QueryContextProcessor: cache_timeout_rv = self._query_context.get_cache_timeout() if cache_timeout_rv: return cache_timeout_rv + if ( + data_cache_timeout := config["DATA_CACHE_CONFIG"].get( + "CACHE_DEFAULT_TIMEOUT" + ) + ) is not None: + return data_cache_timeout return config["CACHE_DEFAULT_TIMEOUT"] def cache_key(self, **extra: Any) -> str: