Skip to content

Commit 99a7fc0

Browse files
committed
Search: mypy python check
1 parent 2c11635 commit 99a7fc0

23 files changed

+68
-68
lines changed

.pre-commit-config.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,16 @@ repos:
129129
^scripts/funcs/[^/]+$
130130
)
131131
132+
- repo: local
133+
hooks:
134+
- id: mypy-search
135+
name: mypy (search tests)
136+
entry: bash -c 'cd docker/mongodb-kubernetes-tests && python -m mypy --follow-imports=silent --disable-error-code=import-untyped tests/search/ tests/common/search/'
137+
language: system
138+
pass_filenames: false
139+
files: docker/mongodb-kubernetes-tests/tests/(common/)?search/.*\.py$
140+
stages: [pre-commit]
141+
132142
- repo: https://github.com/golangci/golangci-lint
133143
rev: v2.0.2
134144
hooks:

controllers/operator/envoy_config_builder.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ package operator
22

33
import (
44
"fmt"
5+
"time"
6+
7+
"github.com/envoyproxy/go-control-plane/pkg/wellknown"
8+
"google.golang.org/protobuf/encoding/protojson"
9+
"google.golang.org/protobuf/types/known/anypb"
10+
"google.golang.org/protobuf/types/known/durationpb"
11+
"google.golang.org/protobuf/types/known/structpb"
12+
"google.golang.org/protobuf/types/known/wrapperspb"
13+
514
bootstrapv3 "github.com/envoyproxy/go-control-plane/envoy/config/bootstrap/v3"
615
clusterv3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
716
corev3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
@@ -13,13 +22,6 @@ import (
1322
hcmv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3"
1423
tlsv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
1524
upstreamhttpv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/upstreams/http/v3"
16-
"github.com/envoyproxy/go-control-plane/pkg/wellknown"
17-
"google.golang.org/protobuf/encoding/protojson"
18-
"google.golang.org/protobuf/types/known/anypb"
19-
"google.golang.org/protobuf/types/known/durationpb"
20-
"google.golang.org/protobuf/types/known/structpb"
21-
"google.golang.org/protobuf/types/known/wrapperspb"
22-
"time"
2325
)
2426

2527
// ============================================================================
@@ -247,7 +249,7 @@ func buildCluster(route envoyRoute, tlsEnabled bool, caKeyName string) (*cluster
247249
{
248250
HostIdentifier: &endpointv3.LbEndpoint_Endpoint{
249251
Endpoint: &endpointv3.Endpoint{
250-
Address: socketAddress(route.UpstreamHost, uint32(route.UpstreamPort)),
252+
Address: socketAddress(route.UpstreamHost, uint32(route.UpstreamPort)), //nolint:gosec
251253
},
252254
},
253255
},

controllers/operator/envoy_config_builder_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ package operator
22

33
import (
44
"encoding/json"
5+
"testing"
6+
7+
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
9+
"google.golang.org/protobuf/encoding/protojson"
10+
511
bootstrapv3 "github.com/envoyproxy/go-control-plane/envoy/config/bootstrap/v3"
612
clusterv3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
713
corev3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
814
tlsv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
9-
"github.com/stretchr/testify/assert"
10-
"github.com/stretchr/testify/require"
11-
"google.golang.org/protobuf/encoding/protojson"
12-
"testing"
1315
)
1416

1517
func testRoute(shardName string) envoyRoute {
@@ -306,8 +308,8 @@ func TestBuildCluster_UsesTypedExtensionProtocolOptions(t *testing.T) {
306308
require.NoError(t, err)
307309

308310
// Verify deprecated fields are NOT set
309-
assert.Nil(t, cluster.Http2ProtocolOptions, "deprecated Http2ProtocolOptions should not be set on Cluster")
310-
assert.Nil(t, cluster.CommonHttpProtocolOptions, "deprecated CommonHttpProtocolOptions should not be set on Cluster")
311+
assert.Nil(t, cluster.Http2ProtocolOptions, "deprecated Http2ProtocolOptions should not be set on Cluster") //nolint:staticcheck
312+
assert.Nil(t, cluster.CommonHttpProtocolOptions, "deprecated CommonHttpProtocolOptions should not be set on Cluster") //nolint:staticcheck
311313

312314
// Verify TypedExtensionProtocolOptions is set
313315
require.Contains(t, cluster.TypedExtensionProtocolOptions, "envoy.extensions.upstreams.http.v3.HttpProtocolOptions")

controllers/operator/mongodbsearchenvoy_controller.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ import (
77
"strings"
88
"time"
99

10+
"go.uber.org/zap"
11+
"k8s.io/apimachinery/pkg/api/resource"
12+
"k8s.io/apimachinery/pkg/util/intstr"
13+
"sigs.k8s.io/controller-runtime/pkg/client"
14+
"sigs.k8s.io/controller-runtime/pkg/controller"
15+
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
16+
"sigs.k8s.io/controller-runtime/pkg/manager"
17+
"sigs.k8s.io/controller-runtime/pkg/reconcile"
18+
19+
appsv1 "k8s.io/api/apps/v1"
20+
corev1 "k8s.io/api/core/v1"
21+
apiErrors "k8s.io/apimachinery/pkg/api/errors"
22+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
ctrl "sigs.k8s.io/controller-runtime"
24+
1025
mdbv1 "github.com/mongodb/mongodb-kubernetes/api/v1/mdb"
1126
searchv1 "github.com/mongodb/mongodb-kubernetes/api/v1/search"
1227
"github.com/mongodb/mongodb-kubernetes/controllers/operator/watch"
@@ -19,19 +34,6 @@ import (
1934
"github.com/mongodb/mongodb-kubernetes/pkg/kube/commoncontroller"
2035
"github.com/mongodb/mongodb-kubernetes/pkg/util"
2136
"github.com/mongodb/mongodb-kubernetes/pkg/util/env"
22-
"go.uber.org/zap"
23-
appsv1 "k8s.io/api/apps/v1"
24-
corev1 "k8s.io/api/core/v1"
25-
apiErrors "k8s.io/apimachinery/pkg/api/errors"
26-
"k8s.io/apimachinery/pkg/api/resource"
27-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28-
"k8s.io/apimachinery/pkg/util/intstr"
29-
ctrl "sigs.k8s.io/controller-runtime"
30-
"sigs.k8s.io/controller-runtime/pkg/client"
31-
"sigs.k8s.io/controller-runtime/pkg/controller"
32-
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
33-
"sigs.k8s.io/controller-runtime/pkg/manager"
34-
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3537
)
3638

3739
// TODO: in this controller, when writing code, keep in mind that we will want to re-use the "config generation" logic

controllers/operator/mongodbsearchenvoy_controller_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package operator
33
import (
44
"testing"
55

6-
searchv1 "github.com/mongodb/mongodb-kubernetes/api/v1/search"
76
"github.com/stretchr/testify/assert"
7+
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
10+
searchv1 "github.com/mongodb/mongodb-kubernetes/api/v1/search"
911
)
1012

1113
func TestBuildReplicaSetRoute(t *testing.T) {

controllers/searchcontroller/mongodbsearch_reconcile_helper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ func (r *MongoDBSearchReconcileHelper) reconcile(ctx context.Context, log *zap.S
129129
}
130130

131131
// Non-sharded (ReplicaSet) reconciliation
132-
return r.reconcileNonSharded(ctx, log, version)
132+
return r.reconcileNonSharded(ctx, log)
133133
}
134134

135-
func (r *MongoDBSearchReconcileHelper) reconcileNonSharded(ctx context.Context, log *zap.SugaredLogger, version string) workflow.Status {
135+
func (r *MongoDBSearchReconcileHelper) reconcileNonSharded(ctx context.Context, log *zap.SugaredLogger) workflow.Status {
136136
keyfileStsModification := statefulset.NOOP()
137137
if r.mdbSearch.IsWireprotoEnabled() {
138138
var err error

docker/mongodb-kubernetes-tests/tests/common/search/envoy_helpers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import Optional
2+
13
from kubernetes import client
24
from kubetester import create_or_update_configmap
35
from kubetester.certs import create_tls_certs
@@ -325,7 +327,7 @@ def create_deployment(self):
325327
except Exception as e:
326328
logger.info(f"Envoy Deployment may already exist: {e}")
327329

328-
def _create_service(self, svc_name: str, extra_labels: dict = None):
330+
def _create_service(self, svc_name: str, extra_labels: Optional[dict] = None):
329331
svc_labels = {"app": self.name}
330332
if extra_labels:
331333
svc_labels.update(extra_labels)

docker/mongodb-kubernetes-tests/tests/common/search/movies_search_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class SampleMoviesSearchHelper:
2424
archive_url: str
2525
tools_pod: Optional[ToolsPod]
2626

27-
def __init__(self, search_tester: SearchTester, tools_pod: ToolsPod = None):
27+
def __init__(self, search_tester: SearchTester, tools_pod: Optional[ToolsPod] = None):
2828
self.search_tester = search_tester
2929
self.tools_pod = tools_pod
3030
self.db_name = "sample_mflix"

docker/mongodb-kubernetes-tests/tests/common/search/search_deployment_helper.py

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -266,39 +266,6 @@ def create_replicaset_mdb(
266266

267267
return resource
268268

269-
def mdbs_for_ext_rs_source(
270-
self,
271-
mongot_user_name: str,
272-
rs_members: int = 3,
273-
) -> MongoDBSearch:
274-
resource = MongoDBSearch.from_yaml(
275-
yaml_fixture("search-minimal.yaml"),
276-
namespace=self.namespace,
277-
name=self.mdbs_resource_name,
278-
)
279-
280-
if try_load(resource):
281-
return resource
282-
283-
seeds = [
284-
f"{self.mdb_resource_name}-{i}.{self.mdb_resource_name}-svc.{self.namespace}.svc.cluster.local:27017"
285-
for i in range(rs_members)
286-
]
287-
288-
resource["spec"]["source"] = {
289-
"username": mongot_user_name,
290-
"passwordSecretRef": {
291-
"name": f"{self.mdbs_resource_name}-{mongot_user_name}-password",
292-
"key": "password",
293-
},
294-
"external": {
295-
"hostAndPorts": seeds,
296-
"tls": {"ca": {"name": self.ca_configmap_name}},
297-
},
298-
}
299-
300-
return resource
301-
302269
def install_sharded_tls_certificates(self, secret_prefix: str = "mdb-sh-"):
303270
mongos_service_dns = f"{self.mdb_resource_name}-svc.{self.namespace}.svc.cluster.local"
304271
create_sharded_cluster_certs(

docker/mongodb-kubernetes-tests/tests/search/replicaset_external_mongodb_multi_mongot_unmanaged_lb.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def mdb(namespace: str, ca_configmap: str, issuer_ca_configmap: str, helper: Sea
110110

111111
@fixture(scope="function")
112112
def mdbs(namespace: str, mdb: MongoDB, helper: SearchDeploymentHelper) -> MongoDBSearch:
113-
resource = helper.mdbs_for_ext_rs_source(mongot_user_name=MONGOT_USER_NAME, rs_members=RS_MEMBERS)
113+
resource = helper.mdbs_for_ext_rs_source(mongot_user_name=MONGOT_USER_NAME, members=RS_MEMBERS)
114114
resource["spec"]["replicas"] = 2
115115
resource["spec"]["lb"] = {
116116
"mode": "Unmanaged",
@@ -147,6 +147,7 @@ def test_install_operator(namespace: str, operator_installation_config: dict[str
147147
def test_create_ops_manager(namespace: str):
148148
"""Test OpsManager deployment (skipped for Cloud Manager)."""
149149
ops_manager = get_ops_manager(namespace)
150+
assert ops_manager is not None
150151
ops_manager.update()
151152
ops_manager.om_status().assert_reaches_phase(Phase.Running, timeout=1200)
152153
ops_manager.appdb_status().assert_reaches_phase(Phase.Running, timeout=600)

0 commit comments

Comments
 (0)