Skip to content

Commit e905573

Browse files
Merge branch 'main' into add_pre-commit_exception
2 parents 9a81e83 + ffcedf2 commit e905573

38 files changed

+12747
-427
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ repos:
5959
hooks:
6060
- id: mypy
6161
additional_dependencies: ["types-PyYAML", "types-requests"]
62-
exclude: ^(docs/|.*/test_.*|utilities/manifests/*|utilities/plugins/tgis_grpc/*)
62+
exclude: ^(docs/|.*test.*\.py$|utilities/manifests/.*|utilities/plugins/tgis_grpc/.*)
6363

6464

6565
- repo: https://github.com/espressif/conventional-precommit-linter

conftest.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def pytest_addoption(parser: Parser) -> None:
4848
upgrade_group = parser.getgroup(name="Upgrade options")
4949
must_gather_group = parser.getgroup(name="MustGather")
5050
cluster_sanity_group = parser.getgroup(name="ClusterSanity")
51+
hf_group = parser.getgroup(name="Hugging Face")
5152

5253
# AWS config and credentials options
5354
aws_group.addoption(
@@ -152,6 +153,9 @@ def pytest_addoption(parser: Parser) -> None:
152153
action="store_true",
153154
)
154155

156+
# HuggingFace options
157+
hf_group.addoption("--hf-access-token", default=os.environ.get("HF_ACCESS_TOKEN"), help="HF access token")
158+
155159

156160
def pytest_cmdline_main(config: Any) -> None:
157161
config.option.basetemp = py_config["tmp_base_dir"] = f"{config.option.basetemp}-{shortuuid.uuid()}"

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ dependencies = [
6868
"pytest-order>=1.3.0",
6969
"marshmallow==3.26.1,<4", # this version is needed for pytest-jira
7070
"pytest-html>=4.1.1",
71+
"fire",
72+
"llama_stack_client==0.2.10",
7173
]
7274

7375
[project.urls]

tests/conftest.py

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,18 @@
1010
from _pytest._py.path import LocalPath
1111
from _pytest.legacypath import TempdirFactory
1212
from _pytest.tmpdir import TempPathFactory
13+
from kubernetes.dynamic.exceptions import ResourceNotFoundError
14+
15+
from ocp_resources.cluster_service_version import ClusterServiceVersion
1316
from ocp_resources.config_map import ConfigMap
17+
from ocp_resources.deployment import Deployment
1418
from ocp_resources.dsc_initialization import DSCInitialization
19+
from ocp_resources.mariadb_operator import MariadbOperator
1520
from ocp_resources.node import Node
1621
from ocp_resources.pod import Pod
1722
from ocp_resources.secret import Secret
1823
from ocp_resources.service import Service
24+
from ocp_resources.subscription import Subscription
1925
from ocp_utilities.monitoring import Prometheus
2026
from pyhelper_utils.shell import run_command
2127
from pytest import FixtureRequest, Config
@@ -26,6 +32,7 @@
2632
from pytest_testconfig import config as py_config
2733
from simple_logger.logger import get_logger
2834

35+
from ocp_utilities.operators import uninstall_operator, install_operator
2936
from utilities.certificates_utils import create_ca_bundle_file
3037
from utilities.data_science_cluster_utils import update_components_in_dsc
3138
from utilities.exceptions import ClusterLoginError
@@ -42,11 +49,14 @@
4249
Labels,
4350
MinIo,
4451
Protocols,
52+
Timeout,
53+
OPENSHIFT_OPERATORS,
4554
)
4655
from utilities.infra import update_configmap_data
4756
from utilities.logger import RedactedString
57+
from utilities.mariadb_utils import wait_for_mariadb_operator_deployments
4858
from utilities.minio import create_minio_data_connection_secret
49-
from utilities.operator_utils import get_csv_related_images
59+
from utilities.operator_utils import get_csv_related_images, get_cluster_service_version
5060

5161
LOGGER = get_logger(name=__name__)
5262

@@ -573,3 +583,59 @@ def autouse_fixtures(
573583
) -> None:
574584
"""Fixture to control the order of execution of some of the fixtures"""
575585
return
586+
587+
588+
@pytest.fixture(scope="session")
589+
def installed_mariadb_operator(admin_client: DynamicClient) -> Generator[None, Any, Any]:
590+
operator_ns = Namespace(name="openshift-operators", ensure_exists=True)
591+
operator_name = "mariadb-operator"
592+
593+
mariadb_operator_subscription = Subscription(client=admin_client, namespace=operator_ns.name, name=operator_name)
594+
595+
if not mariadb_operator_subscription.exists:
596+
install_operator(
597+
admin_client=admin_client,
598+
target_namespaces=["openshift-operators"],
599+
name=operator_name,
600+
channel="alpha",
601+
source="community-operators",
602+
operator_namespace=operator_ns.name,
603+
timeout=Timeout.TIMEOUT_15MIN,
604+
install_plan_approval="Manual",
605+
starting_csv=f"{operator_name}.v0.38.1",
606+
)
607+
608+
deployment = Deployment(
609+
client=admin_client,
610+
namespace=operator_ns.name,
611+
name=f"{operator_name}-helm-controller-manager",
612+
wait_for_resource=True,
613+
)
614+
deployment.wait_for_replicas()
615+
yield
616+
uninstall_operator(
617+
admin_client=admin_client, name=operator_name, operator_namespace=operator_ns.name, clean_up_namespace=False
618+
)
619+
620+
621+
@pytest.fixture(scope="class")
622+
def mariadb_operator_cr(
623+
admin_client: DynamicClient, installed_mariadb_operator: None
624+
) -> Generator[MariadbOperator, Any, Any]:
625+
mariadb_csv: ClusterServiceVersion = get_cluster_service_version(
626+
client=admin_client, prefix="mariadb", namespace=OPENSHIFT_OPERATORS
627+
)
628+
alm_examples: list[dict[str, Any]] = mariadb_csv.get_alm_examples()
629+
mariadb_operator_cr_dict: dict[str, Any] = next(
630+
example for example in alm_examples if example["kind"] == "MariadbOperator"
631+
)
632+
if not mariadb_operator_cr_dict:
633+
raise ResourceNotFoundError(f"No MariadbOperator dict found in alm_examples for CSV {mariadb_csv.name}")
634+
635+
mariadb_operator_cr_dict["metadata"]["namespace"] = OPENSHIFT_OPERATORS
636+
with MariadbOperator(kind_dict=mariadb_operator_cr_dict) as mariadb_operator_cr:
637+
mariadb_operator_cr.wait_for_condition(
638+
condition="Deployed", status=mariadb_operator_cr.Condition.Status.TRUE, timeout=Timeout.TIMEOUT_10MIN
639+
)
640+
wait_for_mariadb_operator_deployments(mariadb_operator=mariadb_operator_cr)
641+
yield mariadb_operator_cr

tests/model_explainability/guardrails/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)