Use source instead of URL for repos (#3670)

This commit is contained in:
Mike Degatano 2022-06-07 11:55:53 -04:00 committed by GitHub
parent ccd2c31390
commit 5f9b999a3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 12 deletions

View File

@ -50,7 +50,7 @@ class StoreManager(CoreSysAttributes, FileConfiguration):
def repository_urls(self) -> list[str]: def repository_urls(self) -> list[str]:
"""Return source URL for all git repositories.""" """Return source URL for all git repositories."""
return [ return [
repository.url repository.source
for repository in self.all for repository in self.all
if repository.type == StoreType.GIT if repository.type == StoreType.GIT
] ]
@ -178,7 +178,7 @@ class StoreManager(CoreSysAttributes, FileConfiguration):
async def remove_repository(self, repository: Repository, *, persist: bool = True): async def remove_repository(self, repository: Repository, *, persist: bool = True):
"""Remove a repository.""" """Remove a repository."""
if repository.url in BUILTIN_REPOSITORIES: if repository.source in BUILTIN_REPOSITORIES:
raise StoreInvalidAddonRepo( raise StoreInvalidAddonRepo(
"Can't remove built-in repositories!", logger=_LOGGER.error "Can't remove built-in repositories!", logger=_LOGGER.error
) )
@ -189,7 +189,7 @@ class StoreManager(CoreSysAttributes, FileConfiguration):
logger=_LOGGER.error, logger=_LOGGER.error,
) )
await self.repositories.pop(repository.slug).remove() await self.repositories.pop(repository.slug).remove()
self._data[ATTR_REPOSITORIES].remove(repository.url) self._data[ATTR_REPOSITORIES].remove(repository.source)
self.save_data() self.save_data()
if persist: if persist:

View File

@ -93,5 +93,5 @@ async def test_api_store_remove_repository(
response = await api_client.delete(f"/store/repositories/{repository.slug}") response = await api_client.delete(f"/store/repositories/{repository.slug}")
assert response.status == 200 assert response.status == 200
assert repository.url not in coresys.store.repository_urls assert repository.source not in coresys.store.repository_urls
assert repository.slug not in coresys.store.repositories assert repository.slug not in coresys.store.repositories

View File

@ -46,7 +46,7 @@ async def test_api_supervisor_options_remove_repository(
api_client: TestClient, coresys: CoreSys, repository: Repository api_client: TestClient, coresys: CoreSys, repository: Repository
): ):
"""Test remove a repository via POST /supervisor/options REST API.""" """Test remove a repository via POST /supervisor/options REST API."""
assert repository.url in coresys.store.repository_urls assert repository.source in coresys.store.repository_urls
assert repository.slug in coresys.store.repositories assert repository.slug in coresys.store.repositories
response = await api_client.post( response = await api_client.post(
@ -54,7 +54,7 @@ async def test_api_supervisor_options_remove_repository(
) )
assert response.status == 200 assert response.status == 200
assert repository.url not in coresys.store.repository_urls assert repository.source not in coresys.store.repository_urls
assert repository.slug not in coresys.store.repositories assert repository.slug not in coresys.store.repositories

View File

@ -194,7 +194,7 @@ async def test_remove_repository(
use_update: bool, use_update: bool,
): ):
"""Test removing a custom repository.""" """Test removing a custom repository."""
assert repository.url in coresys.store.repository_urls assert repository.source in coresys.store.repository_urls
assert repository.slug in coresys.store.repositories assert repository.slug in coresys.store.repositories
if use_update: if use_update:
@ -202,7 +202,7 @@ async def test_remove_repository(
else: else:
await store_manager.remove_repository(repository) await store_manager.remove_repository(repository)
assert repository.url not in coresys.store.repository_urls assert repository.source not in coresys.store.repository_urls
assert repository.slug not in coresys.addons.store assert repository.slug not in coresys.addons.store
assert repository.slug not in coresys.store.repositories assert repository.slug not in coresys.store.repositories
@ -261,7 +261,7 @@ async def test_error_adding_duplicate(
coresys: CoreSys, store_manager: StoreManager, repository: Repository coresys: CoreSys, store_manager: StoreManager, repository: Repository
): ):
"""Test adding a duplicate repository causes an error.""" """Test adding a duplicate repository causes an error."""
assert repository.url in coresys.store.repository_urls assert repository.source in coresys.store.repository_urls
with patch( with patch(
"supervisor.store.repository.Repository.validate", return_value=True "supervisor.store.repository.Repository.validate", return_value=True
), patch( ), patch(
@ -269,14 +269,14 @@ async def test_error_adding_duplicate(
), pytest.raises( ), pytest.raises(
StoreError StoreError
): ):
await store_manager.add_repository(repository.url) await store_manager.add_repository(repository.source)
async def test_add_with_update_repositories( async def test_add_with_update_repositories(
coresys: CoreSys, store_manager: StoreManager, repository: Repository coresys: CoreSys, store_manager: StoreManager, repository: Repository
): ):
"""Test adding repositories to existing ones using update.""" """Test adding repositories to existing ones using update."""
assert repository.url in coresys.store.repository_urls assert repository.source in coresys.store.repository_urls
assert "http://example.com" not in coresys.store.repository_urls assert "http://example.com" not in coresys.store.repository_urls
with patch("supervisor.store.repository.Repository.load", return_value=None), patch( with patch("supervisor.store.repository.Repository.load", return_value=None), patch(
@ -285,5 +285,5 @@ async def test_add_with_update_repositories(
), patch("pathlib.Path.exists", return_value=True): ), patch("pathlib.Path.exists", return_value=True):
await store_manager.update_repositories(["http://example.com"], replace=False) await store_manager.update_repositories(["http://example.com"], replace=False)
assert repository.url in coresys.store.repository_urls assert repository.source in coresys.store.repository_urls
assert "http://example.com" in coresys.store.repository_urls assert "http://example.com" in coresys.store.repository_urls