@@ -60,6 +60,41 @@ def test_invalid_permission_raises(self, monkeypatch: pytest.MonkeyPatch) -> Non
6060 with pytest .raises (ValueError , match = "Invalid NEXTCLOUD_MCP_PERMISSIONS" ):
6161 Config .from_env ()
6262
63+ def test_default_retry_max (self , monkeypatch : pytest .MonkeyPatch ) -> None :
64+ monkeypatch .setenv ("NEXTCLOUD_URL" , "http://localhost" )
65+ monkeypatch .setenv ("NEXTCLOUD_USER" , "admin" )
66+ monkeypatch .setenv ("NEXTCLOUD_PASSWORD" , "admin" )
67+
68+ config = Config .from_env ()
69+ assert config .retry_max == 3
70+
71+ def test_retry_max_from_env (self , monkeypatch : pytest .MonkeyPatch ) -> None :
72+ monkeypatch .setenv ("NEXTCLOUD_URL" , "http://localhost" )
73+ monkeypatch .setenv ("NEXTCLOUD_USER" , "admin" )
74+ monkeypatch .setenv ("NEXTCLOUD_PASSWORD" , "admin" )
75+ monkeypatch .setenv ("NEXTCLOUD_MCP_RETRY_MAX" , "5" )
76+
77+ config = Config .from_env ()
78+ assert config .retry_max == 5
79+
80+ def test_retry_max_zero_disables (self , monkeypatch : pytest .MonkeyPatch ) -> None :
81+ monkeypatch .setenv ("NEXTCLOUD_URL" , "http://localhost" )
82+ monkeypatch .setenv ("NEXTCLOUD_USER" , "admin" )
83+ monkeypatch .setenv ("NEXTCLOUD_PASSWORD" , "admin" )
84+ monkeypatch .setenv ("NEXTCLOUD_MCP_RETRY_MAX" , "0" )
85+
86+ config = Config .from_env ()
87+ assert config .retry_max == 0
88+
89+ def test_retry_max_negative_clamped_to_zero (self , monkeypatch : pytest .MonkeyPatch ) -> None :
90+ monkeypatch .setenv ("NEXTCLOUD_URL" , "http://localhost" )
91+ monkeypatch .setenv ("NEXTCLOUD_USER" , "admin" )
92+ monkeypatch .setenv ("NEXTCLOUD_PASSWORD" , "admin" )
93+ monkeypatch .setenv ("NEXTCLOUD_MCP_RETRY_MAX" , "-1" )
94+
95+ config = Config .from_env ()
96+ assert config .retry_max == 0
97+
6398 def test_case_insensitive_permission (self , monkeypatch : pytest .MonkeyPatch ) -> None :
6499 monkeypatch .setenv ("NEXTCLOUD_URL" , "http://localhost" )
65100 monkeypatch .setenv ("NEXTCLOUD_USER" , "admin" )
0 commit comments