misc.python.materialize.console_version_matrix

Version matrix for console testing - uses existing version_list infrastructure.

 1# Copyright Materialize, Inc. and contributors. All rights reserved.
 2#
 3# Use of this software is governed by the Business Source License
 4# included in the LICENSE file at the root of this repository.
 5#
 6# As of the Change Date specified in that file, in accordance with
 7# the Business Source License, use of this software will be governed
 8# by the Apache License, Version 2.0.
 9
10"""
11Version matrix for console testing - uses existing version_list infrastructure.
12"""
13
14from materialize.mz_version import MzVersion
15from materialize.version_list import (
16    get_published_minor_mz_versions,
17    get_self_managed_versions,
18)
19
20
21def get_console_test_versions() -> dict[str, MzVersion]:
22    """
23    Get all versions that should be tested for console.
24
25    Uses existing version_list.py infrastructure to determine:
26    - latest: Most recent minor version
27    - previous: One minor version back
28    - older: Two minor versions back
29    - self-managed: Latest self-managed version from Helm chart
30
31    Returns:
32        Dictionary mapping test name to version
33
34    Note: Uses get_published_minor_mz_versions which verifies Docker images exist.
35    """
36    # Get the latest patch version for each minor version (with Docker image verification)
37    # Limit to 5 versions for speed
38    minor_versions = get_published_minor_mz_versions(newest_first=True, limit=5)
39
40    assert (
41        len(minor_versions) >= 3
42    ), f"Expected at least 3 minor versions, got {len(minor_versions)}"
43
44    latest = minor_versions[0]
45    previous = minor_versions[1]
46    older = minor_versions[2]
47
48    # Self-managed: Get the latest self-managed version from Helm chart
49    sm_versions = get_self_managed_versions()
50    assert sm_versions, "Expected at least one self-managed version"
51    self_managed = max(sm_versions)
52
53    return {
54        "latest": latest,
55        "previous": previous,
56        "older": older,
57        "self-managed": self_managed,
58    }
def get_console_test_versions() -> dict[str, materialize.mz_version.MzVersion]:
22def get_console_test_versions() -> dict[str, MzVersion]:
23    """
24    Get all versions that should be tested for console.
25
26    Uses existing version_list.py infrastructure to determine:
27    - latest: Most recent minor version
28    - previous: One minor version back
29    - older: Two minor versions back
30    - self-managed: Latest self-managed version from Helm chart
31
32    Returns:
33        Dictionary mapping test name to version
34
35    Note: Uses get_published_minor_mz_versions which verifies Docker images exist.
36    """
37    # Get the latest patch version for each minor version (with Docker image verification)
38    # Limit to 5 versions for speed
39    minor_versions = get_published_minor_mz_versions(newest_first=True, limit=5)
40
41    assert (
42        len(minor_versions) >= 3
43    ), f"Expected at least 3 minor versions, got {len(minor_versions)}"
44
45    latest = minor_versions[0]
46    previous = minor_versions[1]
47    older = minor_versions[2]
48
49    # Self-managed: Get the latest self-managed version from Helm chart
50    sm_versions = get_self_managed_versions()
51    assert sm_versions, "Expected at least one self-managed version"
52    self_managed = max(sm_versions)
53
54    return {
55        "latest": latest,
56        "previous": previous,
57        "older": older,
58        "self-managed": self_managed,
59    }

Get all versions that should be tested for console.

Uses existing version_list.py infrastructure to determine:

  • latest: Most recent minor version
  • previous: One minor version back
  • older: Two minor versions back
  • self-managed: Latest self-managed version from Helm chart

Returns: Dictionary mapping test name to version

Note: Uses get_published_minor_mz_versions which verifies Docker images exist.