Skip to content

Commit 941069d

Browse files
committed
fix(ci): resolve mypy and pytest errors
- Fixes a `mypy` error (`truthy-function`) by making the check for the optional `watchdog` dependency more explicit. - Updates `pytest` tests to reflect the renaming of `load_kube_config` to `reload_kube_config_if_changed`. - Removes obsolete patches from tests that were causing `AttributeError`. This commit addresses the CI failures introduced in the previous commit.
1 parent ddc6ea4 commit 941069d

File tree

3 files changed

+52
-18
lines changed

3 files changed

+52
-18
lines changed

kubernetes_monitoring.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666

6767
# Kubeconfig 변경을 감지하는 핸들러
68-
if FileSystemEventHandler:
68+
if Observer is not None and FileSystemEventHandler is not None:
6969

7070
class KubeConfigChangeHandler(FileSystemEventHandler):
7171
"""Kubeconfig 파일 변경을 감지하여 플래그를 설정."""
@@ -98,7 +98,6 @@ def start_kube_config_watcher() -> None:
9898
observer.start()
9999

100100

101-
102101
# 노드그룹 라벨을 변수로 분리 (기본값: node.kubernetes.io/app)
103102
NODE_GROUP_LABEL = "node.kubernetes.io/app"
104103

@@ -2735,7 +2734,7 @@ def watch_pod_resources() -> None:
27352734
console.print(
27362735
"[bold red]NodeGroup 필터에 해당하는 노드를 찾을 수 없습니다. 필터를 리셋합니다.[/bold red]"
27372736
)
2738-
filter_nodegroup = "" # Reset filter
2737+
filter_nodegroup = "" # Reset filter
27392738

27402739
metrics, error, kubectl_cmd = _get_kubectl_top_pod(namespace)
27412740
if error:

tests/test_kubernetes_monitoring.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,29 +86,28 @@ def test_get_kubectl_top_pod_failure(mock_run):
8686

8787

8888
@patch("kubernetes_monitoring.config")
89-
def test_load_kube_config_success(mock_config):
90-
"""Test successful kube config loading"""
89+
def test_reload_kube_config_success(mock_config):
90+
"""Test successful kube config reloading"""
9191
mock_config.load_kube_config.return_value = None
9292

93-
# Should not raise an exception
94-
kubernetes_monitoring.load_kube_config()
93+
# Should return True on success
94+
result = kubernetes_monitoring.reload_kube_config_if_changed(force=True)
95+
assert result is True
9596
mock_config.load_kube_config.assert_called_once()
9697

9798

9899
@patch("kubernetes_monitoring.config")
99-
@patch("sys.exit")
100-
def test_load_kube_config_failure(mock_exit, mock_config):
101-
"""Test kube config loading failure"""
100+
def test_reload_kube_config_failure(mock_config):
101+
"""Test kube config reloading failure"""
102102
mock_config.load_kube_config.side_effect = Exception("Config error")
103103

104-
kubernetes_monitoring.load_kube_config()
105-
mock_exit.assert_called_once_with(1)
104+
result = kubernetes_monitoring.reload_kube_config_if_changed(force=True)
105+
assert result is False
106106

107107

108108
@patch("kubernetes_monitoring.Prompt.ask")
109109
@patch("kubernetes_monitoring.client")
110-
@patch("kubernetes_monitoring.load_kube_config")
111-
def test_choose_namespace_success(mock_load_config, mock_client, mock_prompt):
110+
def test_choose_namespace_success(mock_client, mock_prompt):
112111
"""Test successful namespace selection"""
113112
# Mock the namespace list
114113
mock_ns = MagicMock()
@@ -126,19 +125,16 @@ def test_choose_namespace_success(mock_load_config, mock_client, mock_prompt):
126125

127126
# This should not raise an exception
128127
kubernetes_monitoring.choose_namespace()
129-
mock_load_config.assert_called_once()
130128

131129

132130
@patch("kubernetes_monitoring.client")
133-
@patch("kubernetes_monitoring.load_kube_config")
134-
def test_choose_namespace_failure(mock_load_config, mock_client):
131+
def test_choose_namespace_failure(mock_client):
135132
"""Test namespace selection failure"""
136133
mock_v1 = MagicMock()
137134
mock_v1.list_namespace.side_effect = Exception("API error")
138135
mock_client.CoreV1Api.return_value = mock_v1
139136

140137
kubernetes_monitoring.choose_namespace()
141-
assert mock_load_config.called
142138

143139

144140
def test_save_markdown_snapshot_success(tmp_path, monkeypatch):

uv.lock

Lines changed: 39 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)