codeant-ai-for-open-source[bot] commented on code in PR #43640: URL: https://github.com/apache/superset/pull/43640#discussion_r3878231561
########## tests/testcontainers/db_engine_specs/test_timescaledb.py: ########## @@ -0,0 +1,98 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +""" +Tests db_engine_specs.timescaledb against a real TimescaleDB instance, +spun up on demand via testcontainers. Run via +.github/workflows/testcontainers.yml -- these exercise real SQL execution +and dialect introspection, which mocked unit tests structurally cannot. + +TimescaleDB is a genuine Postgres extension, not a fork: connects via the +plain "postgresql" dialect with psycopg2, same as vanilla Postgres, just +pointed at the timescale/timescaledb image instead of postgres:latest. +""" + +from collections.abc import Iterator + +import pytest +from sqlalchemy import ( + Column, + create_engine, + inspect, + Integer, + MetaData, + Table as SATable, +) +from sqlalchemy.engine import Engine + +from superset.db_engine_specs.timescaledb import TimescaleDBEngineSpec +from superset.sql.parse import Table +from superset.utils.core import GenericDataType + +pytestmark = pytest.mark.testcontainers + +from ._driver import require_driver # noqa: E402 + +require_driver("testcontainers.community.postgres") + +from testcontainers.community.postgres import PostgresContainer # noqa: E402 + +from ._pagination import ( # noqa: E402 + assert_paginated_query_returns_correct_rows_in_order, +) + + [email protected](scope="module") +def engine() -> Iterator[Engine]: + with PostgresContainer("timescale/timescaledb:latest-pg16") as container: Review Comment: **Suggestion:** The mutable `latest-pg16` image tag means the tested TimescaleDB version and extension behavior can change without a source change, causing nondeterministic CI results and making failures impossible to reproduce reliably. Pin this test to a specific TimescaleDB image version. [possible bug] <details> <summary><b>Severity Level:</b> Minor ๐งน</summary> ```mdx - โ ๏ธ TimescaleDB test behavior changes across image releases. - โ ๏ธ CI failures may be difficult to reproduce locally. ``` </details> [](https://docs.codeant.ai/cli/resolve-pr-comments-skill) [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=6fc9ab7605f446e599ee0b8ff4664600&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=6fc9ab7605f446e599ee0b8ff4664600&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) <details> <summary><b>Prompt for AI Agent ๐ค </b></summary> ```mdx This is a comment left during a code review. **Path:** tests/testcontainers/db_engine_specs/test_timescaledb.py **Line:** 60:60 **Comment:** *Possible Bug: The mutable `latest-pg16` image tag means the tested TimescaleDB version and extension behavior can change without a source change, causing nondeterministic CI results and making failures impossible to reproduce reliably. Pin this test to a specific TimescaleDB image version. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43640&comment_hash=611dc206e379726d898250286f36b70928fc2d8d35580e1f367023e6f5f289f8&reaction=like'>๐</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43640&comment_hash=611dc206e379726d898250286f36b70928fc2d8d35580e1f367023e6f5f289f8&reaction=dislike'>๐</a> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
