Skip to content

Commit ca5e1d5

Browse files
committed
Switched to ty
1 parent fb077e7 commit ca5e1d5

31 files changed

+78
-45
lines changed

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ repos:
131131
132132
- repo: local
133133
hooks:
134-
- id: mypy
135-
name: mypy
136-
entry: bash -c 'cd docker/mongodb-kubernetes-tests && python -m mypy --config-file ../../pyproject.toml --follow-imports=silent --disable-error-code=import-untyped tests/'
134+
- id: ty
135+
name: ty
136+
entry: bash -c 'cd docker/mongodb-kubernetes-tests && uvx ty check tests/'
137137
language: system
138138
pass_filenames: false
139139
files: docker/mongodb-kubernetes-tests/tests/.*\.py$

docker/mongodb-kubernetes-tests/kubetester/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def delete_service_account(namespace: str, name: str) -> str:
7575

7676
def get_service(
7777
namespace: str, name: str, api_client: Optional[kubernetes.client.ApiClient] = None
78-
) -> client.V1ServiceSpec:
78+
) -> Optional[client.V1Service]:
7979
"""Gets a service with `name` in `namespace.
8080
:return None if the service does not exist
8181
"""

docker/mongodb-kubernetes-tests/tests/clusterwideoperator/om_multiple.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def install_database_roles(
5151
raise e
5252

5353

54-
def create_om_admin_secret(ops_manager_namespace: str, api_client: kubernetes.client.ApiClient = None):
54+
def create_om_admin_secret(ops_manager_namespace: str, api_client: kubernetes.client.ApiClient | None = None):
5555
data = dict(
5656
Username="test-user",
5757
Password="@Sihjifutestpass21nnH",

docker/mongodb-kubernetes-tests/tests/conftest.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ def _load_env_from_local_file_for_development():
3232
_load_env_from_local_file_for_development()
3333

3434
import kubernetes
35-
import requests # type: ignore[import-untyped]
35+
import kubernetes.client.rest
36+
import requests
3637
from kubernetes import client
3738
from kubernetes.client import ApiextensionsV1Api
3839
from kubetester import (
@@ -337,7 +338,10 @@ def multi_cluster_issuer_ca_configmap(
337338

338339

339340
def create_issuer_ca_configmap(
340-
issuer_ca_filepath: str, namespace: str, name: str = "issuer-ca", api_client: kubernetes.client.ApiClient = None
341+
issuer_ca_filepath: str,
342+
namespace: str,
343+
name: str = "issuer-ca",
344+
api_client: kubernetes.client.ApiClient | None = None,
341345
):
342346
"""This is the CA file which verifies the certificates signed by it."""
343347
ca = open(issuer_ca_filepath).read()
@@ -1059,6 +1063,7 @@ def install_official_operator(
10591063
# but workload images (OpsManager, Agent, etc.) will use dev registries from operator_installation_config
10601064
# to support testing unreleased versions in patch builds.
10611065
assert member_cluster_clients is not None
1066+
assert central_cluster_client is not None
10621067
return _install_multi_cluster_operator(
10631068
namespace,
10641069
helm_args,
@@ -1702,6 +1707,8 @@ def pytest_sessionfinish(session, exitstatus):
17021707
project_id = os.environ.get("OM_PROJECT_ID", "")
17031708
if project_id:
17041709
base_url = os.environ.get("OM_HOST")
1710+
if base_url is None:
1711+
return
17051712
user = os.environ.get("OM_USER")
17061713
key = os.environ.get("OM_API_KEY")
17071714
ids = project_id.split(",")
@@ -1755,7 +1762,7 @@ def install_multi_cluster_operator_cluster_scoped(
17551762
central_cluster_name: str = get_central_cluster_name(),
17561763
central_cluster_client: client.ApiClient = get_central_cluster_client(),
17571764
multi_cluster_operator_installation_config: Optional[dict[str, str]] = None,
1758-
member_cluster_clients: Optional[list[kubernetes.client.ApiClient]] = None,
1765+
member_cluster_clients: Optional[list[MultiClusterClient]] = None,
17591766
cluster_clients: Optional[dict[str, kubernetes.client.ApiClient]] = None,
17601767
member_cluster_names: Optional[list[str]] = None,
17611768
) -> Operator:

docker/mongodb-kubernetes-tests/tests/multicluster/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/usr/bin/env python3
22
import ipaddress
33
import urllib
4+
import urllib.parse
45
from typing import Dict, Generator, List, Optional
5-
from urllib import parse
66

77
import kubernetes
88
from kubeobject import CustomObject

docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ def ops_manager_certs(
6565

6666
def create_project_config_map(om: MongoDBOpsManager, mdb_name, project_name, client, custom_ca):
6767
name = f"{mdb_name}-config"
68-
data = {
69-
"baseUrl": om.om_status().get_url(),
68+
base_url = om.om_status().get_url()
69+
assert base_url is not None, "OpsManager URL must not be None"
70+
data: dict[str, str] = {
71+
"baseUrl": base_url,
7072
"projectName": project_name,
7173
"sslMMSCAConfigMap": custom_ca,
7274
"orgId": "",
@@ -374,7 +376,7 @@ def project_one(
374376
def mdb_client(self, mongodb_multi_one: MongoDBMulti):
375377
return pymongo.MongoClient(
376378
mongodb_multi_one.tester(port=MONGODB_PORT).cnx_string,
377-
**mongodb_multi_one.tester(port=MONGODB_PORT).default_opts, # type: ignore[arg-type]
379+
**mongodb_multi_one.tester(port=MONGODB_PORT).default_opts,
378380
readPreference="primary", # let's read from the primary and not stale data from the secondary
379381
)
380382

@@ -516,6 +518,6 @@ def test_data_got_restored(self, mongodb_multi_one_collection, mdb_client):
516518

517519
def time_to_millis(date_time) -> int:
518520
"""https://stackoverflow.com/a/11111177/614239"""
519-
epoch = datetime.datetime.utcfromtimestamp(0)
521+
epoch = datetime.datetime.fromtimestamp(0, tz=datetime.timezone.utc)
520522
pit_millis = (date_time - epoch).total_seconds() * 1000
521523
return pit_millis

docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore_no_mesh.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ def ops_manager_certs(
6565

6666
def create_project_config_map(om: MongoDBOpsManager, mdb_name, project_name, client, custom_ca):
6767
name = f"{mdb_name}-config"
68-
data = {
69-
"baseUrl": om.om_status().get_url(),
68+
base_url = om.om_status().get_url()
69+
assert base_url is not None, "OpsManager URL must not be None"
70+
data: dict[str, str] = {
71+
"baseUrl": base_url,
7072
"projectName": project_name,
7173
"sslMMSCAConfigMap": custom_ca,
7274
"orgId": "",
@@ -459,7 +461,7 @@ def mongodb_multi_one_collection(self, mongodb_multi_one: MongoDBMulti):
459461
external=True,
460462
)
461463

462-
db: pymongo.database.Database = pymongo.MongoClient(tester.cnx_string, **tester.default_opts)["testdb"] # type: ignore[arg-type]
464+
db: pymongo.database.Database = pymongo.MongoClient(tester.cnx_string, **tester.default_opts)["testdb"]
463465

464466
return db["testcollection"]
465467

@@ -681,6 +683,6 @@ def test_data_got_restored(self, mongodb_multi_one_collection):
681683

682684
def time_to_millis(date_time) -> int:
683685
"""https://stackoverflow.com/a/11111177/614239"""
684-
epoch = datetime.datetime.utcfromtimestamp(0)
686+
epoch = datetime.datetime.fromtimestamp(0, tz=datetime.timezone.utc)
685687
pit_millis = (date_time - epoch).total_seconds() * 1000
686688
return pit_millis

docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_clusterwide.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def install_operator(
8686
central_cluster_name: str,
8787
multi_cluster_operator_installation_config: Dict[str, str],
8888
central_cluster_client: client.ApiClient,
89-
member_cluster_clients: List[kubernetes.client.ApiClient],
89+
member_cluster_clients: List[MultiClusterClient],
9090
cluster_clients: Dict[str, kubernetes.client.ApiClient],
9191
member_cluster_names: List[str],
9292
mdba_ns: str,

docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_disaster_recovery.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def test_delete_om_and_appdb_statefulset_in_failed_cluster(
165165
if e.status != 404:
166166
raise e
167167

168-
def statefulset_is_deleted(namespace: str, name: str, api_client=Optional[kubernetes.client.ApiClient]):
168+
def statefulset_is_deleted(namespace: str, name: str, api_client: Optional[kubernetes.client.ApiClient] = None):
169169
try:
170170
get_statefulset(namespace, name, api_client=api_client)
171171
return False

docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_s3_based_backup_restore.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ def appdb_member_cluster_names() -> list[str]:
2727

2828
def create_project_config_map(om: MongoDBOpsManager, mdb_name, project_name, client, custom_ca):
2929
name = f"{mdb_name}-config"
30-
data = {
31-
"baseUrl": om.om_status().get_url(),
30+
base_url = om.om_status().get_url()
31+
assert base_url is not None, "OpsManager URL must not be None"
32+
data: dict[str, str] = {
33+
"baseUrl": base_url,
3234
"projectName": project_name,
3335
"sslMMSCAConfigMap": custom_ca,
3436
"orgId": "",
@@ -162,7 +164,7 @@ def mongodb_multi_one_collection(self, mongodb_multi_one: MongoDBMulti):
162164
# we instantiate the pymongo client per test to avoid flakiness as the primary and secondary might swap
163165
db: pymongo.database.Database = pymongo.MongoClient(
164166
mongodb_multi_one.tester(port=MONGODB_PORT).cnx_string,
165-
**mongodb_multi_one.tester(port=MONGODB_PORT).default_opts, # type: ignore[arg-type]
167+
**mongodb_multi_one.tester(port=MONGODB_PORT).default_opts,
166168
)["testdb"]
167169

168170
return db["testcollection"]
@@ -229,6 +231,6 @@ def test_data_got_restored(self, mongodb_multi_one_collection):
229231

230232
def time_to_millis(date_time) -> int:
231233
"""https://stackoverflow.com/a/11111177/614239"""
232-
epoch = datetime.datetime.utcfromtimestamp(0)
234+
epoch = datetime.datetime.fromtimestamp(0, tz=datetime.timezone.utc)
233235
pit_millis = (date_time - epoch).total_seconds() * 1000
234236
return pit_millis

0 commit comments

Comments
 (0)