graphql-engine/server/tests-py/test_query_cache.py
Samir Talwar 6ed9f36125 Remove the server upgrade/downgrade tests.
These tests are intended to catch issues in upgrading HGE. However:

* the tests are very convoluted and hard to understand,
* we can only run a small subset of Python tests that don't mutate any data or metadata, and
* I have never seen them fail for a legitimate reason, but I've seen a lot of flakes.

While we do believe it's important to test that upgrades don't break the stored introspection, these tests don't seem to be doing that any more. I humbly request that we delete them now and either (a) figure out how to test this properly, or (b) just wait for v3, which does away with reintrospecting on server startup entirely.

[NDAT-259]: https://hasurahq.atlassian.net/browse/NDAT-259?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8844
GitOrigin-RevId: 528bc632fce377b7eff2026b832bd58586ac5a0b
2023-04-24 10:04:15 +00:00

57 lines
2.2 KiB
Python

import pytest
import redis
from validate import check_query_f
from context import PytestConf
usefixtures = pytest.mark.usefixtures
@pytest.mark.skipif(not PytestConf.config.getoption('--redis-url'), reason="Must enable redis")
@pytest.mark.parametrize("transport", ['http'])
@usefixtures('per_class_tests_db_state')
class TestQueryCache:
def flushRedis(self):
# TODO: Move this into setup/teardown
r = redis.from_url(PytestConf.config.getoption('--redis-url'))
r.flushall()
@classmethod
def dir(cls):
return 'queries/query_cache'
def test_simple_cached_endpoint(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/simple_cached.yaml', transport)
self.flushRedis()
def test_metrics_one_endpoint(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_metrics_one.yaml', transport)
self.flushRedis()
def test_metrics_two_endpoint(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_metrics_two.yaml', transport)
self.flushRedis()
def test_cache_clear_endpoint(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_cache_clear.yaml', transport)
self.flushRedis()
def test_cache_clear_endpoint_key(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_cache_clear_key.yaml', transport)
self.flushRedis()
def test_cache_clear_endpoint_family(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_cache_clear_family.yaml', transport)
self.flushRedis()
def test_no_variables_in_query_key(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_no_variables_in_query_key.yaml', transport)
self.flushRedis()
def test_action_query_with_forward_client_headers_set(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_action_query_with_forward_client_headers_set.yaml', transport)
self.flushRedis()
def test_action_query_with_forward_client_header_unset(self, hge_ctx, transport):
check_query_f(hge_ctx, self.dir() + '/test_action_query_with_forward_client_headers_unset.yaml', transport)
self.flushRedis()