mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-24 20:35:55 +00:00
Refactoring around add-on store Repository classes (#5990)
* Rename repository fixture to test_repository
Also don't remove the built-in repositories. The list was incomplete,
and tests don't seem to require that anymore.
* Get rid of StoreType
The type doesn't have much value, we have constant strings anyways.
* Introduce types.py
* Use slug to determine which repository urls to return
* Simplify BuiltinRepository enum
* Mock GitRepo load
* Improve URL handling and repository creation logic
* Refactor update_repositories
* Get rid of get_from_url
It is no longer used in production code.
* More refactoring
* Address pylint
* Introduce is_git_based property to Repository class
Return all git based URLs, including the Core repository.
* Revert "Introduce is_git_based property to Repository class"
This reverts commit dfd5ad79bf.
* Fold type.py into const.py
Align more with how Supervisor code is typically structured.
* Update supervisor/store/__init__.py
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
* Apply repository remove suggestion
* Fix tests
---------
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
This commit is contained in:
@@ -10,7 +10,7 @@ from supervisor.resolution.fixups.store_execute_remove import FixupStoreExecuteR
|
||||
from supervisor.store.repository import Repository
|
||||
|
||||
|
||||
async def test_fixup(coresys: CoreSys, repository: Repository):
|
||||
async def test_fixup(coresys: CoreSys, test_repository: Repository):
|
||||
"""Test fixup."""
|
||||
store_execute_remove = FixupStoreExecuteRemove(coresys)
|
||||
|
||||
@@ -18,16 +18,20 @@ async def test_fixup(coresys: CoreSys, repository: Repository):
|
||||
|
||||
coresys.resolution.add_suggestion(
|
||||
Suggestion(
|
||||
SuggestionType.EXECUTE_REMOVE, ContextType.STORE, reference=repository.slug
|
||||
SuggestionType.EXECUTE_REMOVE,
|
||||
ContextType.STORE,
|
||||
reference=test_repository.slug,
|
||||
)
|
||||
)
|
||||
coresys.resolution.add_issue(
|
||||
Issue(
|
||||
IssueType.CORRUPT_REPOSITORY, ContextType.STORE, reference=repository.slug
|
||||
IssueType.CORRUPT_REPOSITORY,
|
||||
ContextType.STORE,
|
||||
reference=test_repository.slug,
|
||||
)
|
||||
)
|
||||
|
||||
with patch.object(type(repository), "remove") as remove_repo:
|
||||
with patch.object(type(test_repository), "remove") as remove_repo:
|
||||
await store_execute_remove()
|
||||
|
||||
assert remove_repo.called
|
||||
@@ -36,4 +40,4 @@ async def test_fixup(coresys: CoreSys, repository: Repository):
|
||||
assert len(coresys.resolution.suggestions) == 0
|
||||
assert len(coresys.resolution.issues) == 0
|
||||
|
||||
assert repository.slug not in coresys.store.repositories
|
||||
assert test_repository.slug not in coresys.store.repositories
|
||||
|
||||
Reference in New Issue
Block a user