mirror of
https://github.com/minetest/contentdb.git
synced 2024-12-22 14:02:24 +01:00
Fix issue when updating game support on multiple dependers
This commit is contained in:
parent
0c4698ec0d
commit
aecde93310
@ -228,8 +228,6 @@ class GameSupport:
|
|||||||
while len(to_update) > 0:
|
while len(to_update) > 0:
|
||||||
current_package = to_update.pop()
|
current_package = to_update.pop()
|
||||||
if current_package.id_ in self.packages and current_package.type != PackageType.GAME:
|
if current_package.id_ in self.packages and current_package.type != PackageType.GAME:
|
||||||
current_package.is_confirmed = False
|
|
||||||
current_package.detected_supported_games = []
|
|
||||||
self._get_supported_games(current_package, [])
|
self._get_supported_games(current_package, [])
|
||||||
|
|
||||||
provides = current_package.provides
|
provides = current_package.provides
|
||||||
@ -239,6 +237,10 @@ class GameSupport:
|
|||||||
for modname in provides:
|
for modname in provides:
|
||||||
for depending_package in self.get_all_that_depend_on(modname):
|
for depending_package in self.get_all_that_depend_on(modname):
|
||||||
if depending_package not in checked:
|
if depending_package not in checked:
|
||||||
|
if depending_package.id_ in self.packages and depending_package.type != PackageType.GAME:
|
||||||
|
depending_package.is_confirmed = False
|
||||||
|
depending_package.detected_supported_games = []
|
||||||
|
|
||||||
to_update.add(depending_package)
|
to_update.add(depending_package)
|
||||||
checked.add(depending_package)
|
checked.add(depending_package)
|
||||||
|
|
||||||
|
@ -285,7 +285,8 @@ def test_update_new_mod():
|
|||||||
support.add(make_game("game1", ["default"]))
|
support.add(make_game("game1", ["default"]))
|
||||||
support.add(make_game("game2", ["core", "mod_b"]))
|
support.add(make_game("game2", ["core", "mod_b"]))
|
||||||
lib = support.add(make_mod("lib", ["lib"], []))
|
lib = support.add(make_mod("lib", ["lib"], []))
|
||||||
modA = support.add(make_mod("mod_a", ["mod_a"], ["mod_b", "lib"]))
|
modC = support.add(make_mod("mod_c", ["mod_c"], ["mod_b"]))
|
||||||
|
modA = support.add(make_mod("mod_a", ["mod_a"], ["mod_b", "mod_c", "lib"]))
|
||||||
support.on_update(modA)
|
support.on_update(modA)
|
||||||
|
|
||||||
assert not support.has_errors
|
assert not support.has_errors
|
||||||
@ -293,6 +294,9 @@ def test_update_new_mod():
|
|||||||
assert modA.is_confirmed
|
assert modA.is_confirmed
|
||||||
assert modA.detected_supported_games == {"game2"}
|
assert modA.detected_supported_games == {"game2"}
|
||||||
|
|
||||||
|
assert modC.is_confirmed
|
||||||
|
assert modC.detected_supported_games == {"game2"}
|
||||||
|
|
||||||
assert lib.is_confirmed
|
assert lib.is_confirmed
|
||||||
assert len(lib.detected_supported_games) == 0
|
assert len(lib.detected_supported_games) == 0
|
||||||
|
|
||||||
@ -307,6 +311,9 @@ def test_update_new_mod():
|
|||||||
assert modB.is_confirmed
|
assert modB.is_confirmed
|
||||||
assert modB.detected_supported_games == {"game1"}
|
assert modB.detected_supported_games == {"game1"}
|
||||||
|
|
||||||
|
assert modC.is_confirmed
|
||||||
|
assert modC.detected_supported_games == {"game1", "game2"}
|
||||||
|
|
||||||
assert lib.is_confirmed
|
assert lib.is_confirmed
|
||||||
assert len(lib.detected_supported_games) == 0
|
assert len(lib.detected_supported_games) == 0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user