99import pytest
1010
1111from supervisor .coresys import CoreSys
12- from supervisor .exceptions import HassioError , HostNotSupportedError , StoreGitError
13- from supervisor .store .repository import Repository
12+ from supervisor .exceptions import HassioError , HostNotSupportedError
1413
1514from tests .api import common_test_api_advanced_logs
1615from tests .dbus_service_mocks .base import DBusServiceMock
@@ -28,81 +27,6 @@ async def test_api_supervisor_options_debug(api_client: TestClient, coresys: Cor
2827 assert coresys .config .debug
2928
3029
31- async def test_api_supervisor_options_add_repository (
32- api_client : TestClient , coresys : CoreSys , supervisor_internet : AsyncMock
33- ):
34- """Test add a repository via POST /supervisor/options REST API."""
35- assert REPO_URL not in coresys .store .repository_urls
36-
37- with (
38- patch ("supervisor.store.repository.RepositoryGit.load" , return_value = None ),
39- patch ("supervisor.store.repository.RepositoryGit.validate" , return_value = True ),
40- ):
41- response = await api_client .post (
42- "/supervisor/options" , json = {"addons_repositories" : [REPO_URL ]}
43- )
44-
45- assert response .status == 200
46- assert REPO_URL in coresys .store .repository_urls
47-
48-
49- async def test_api_supervisor_options_remove_repository (
50- api_client : TestClient , coresys : CoreSys , test_repository : Repository
51- ):
52- """Test remove a repository via POST /supervisor/options REST API."""
53- assert test_repository .source in coresys .store .repository_urls
54- assert test_repository .slug in coresys .store .repositories
55-
56- response = await api_client .post (
57- "/supervisor/options" , json = {"addons_repositories" : []}
58- )
59-
60- assert response .status == 200
61- assert test_repository .source not in coresys .store .repository_urls
62- assert test_repository .slug not in coresys .store .repositories
63-
64-
65- @pytest .mark .parametrize ("git_error" , [None , StoreGitError ()])
66- async def test_api_supervisor_options_repositories_skipped_on_error (
67- api_client : TestClient , coresys : CoreSys , git_error : StoreGitError
68- ):
69- """Test repositories skipped on error via POST /supervisor/options REST API."""
70- with (
71- patch ("supervisor.store.repository.RepositoryGit.load" , side_effect = git_error ),
72- patch ("supervisor.store.repository.RepositoryGit.validate" , return_value = False ),
73- patch ("supervisor.store.repository.RepositoryCustom.remove" ),
74- ):
75- response = await api_client .post (
76- "/supervisor/options" , json = {"addons_repositories" : [REPO_URL ]}
77- )
78-
79- assert response .status == 400
80- assert len (coresys .resolution .suggestions ) == 0
81- assert REPO_URL not in coresys .store .repository_urls
82-
83-
84- async def test_api_supervisor_options_repo_error_with_config_change (
85- api_client : TestClient , coresys : CoreSys
86- ):
87- """Test config change with add repository error via POST /supervisor/options REST API."""
88- assert not coresys .config .debug
89-
90- with patch (
91- "supervisor.store.repository.RepositoryGit.load" , side_effect = StoreGitError ()
92- ):
93- response = await api_client .post (
94- "/supervisor/options" ,
95- json = {"debug" : True , "addons_repositories" : [REPO_URL ]},
96- )
97-
98- assert response .status == 400
99- assert REPO_URL not in coresys .store .repository_urls
100-
101- assert coresys .config .debug
102- coresys .updater .save_data .assert_called_once ()
103- coresys .config .save_data .assert_called_once ()
104-
105-
10630async def test_api_supervisor_options_auto_update (
10731 api_client : TestClient , coresys : CoreSys
10832):
0 commit comments