Skip to content

Commit

Permalink
Add initial test for 'collisions' command.
Browse files Browse the repository at this point in the history
  • Loading branch information
cyberrumor committed Mar 12, 2024
1 parent 529ad69 commit 5d89c81
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions test/test_conflict_resolution.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
import os
import textwrap
from pathlib import Path

from common import (
Expand All @@ -13,6 +14,8 @@
RenameEnum,
)

import pytest


def test_duplicate_plugin():
"""
Expand Down Expand Up @@ -350,3 +353,44 @@ def test_conflicting_mods_conflict_after_rename():

assert controller.mods[0].conflict is True
assert controller.mods[1].conflict is True


def test_collisions():
"""
Test that the 'collisions' command indicates
all and only conflicting files, indicating the
conflict winning mod with an "*".
"""
with AmmoController() as controller:
for mod in ["conflict_1", "conflict_2", "normal_mod"]:
install_mod(controller, mod)

conflict_1 = [i.name for i in controller.mods].index("conflict_1")
conflict_2 = [i.name for i in controller.mods].index("conflict_2")
normal_mod = [i.name for i in controller.mods].index("normal_mod")

expected = textwrap.dedent(
"""\
file.dll
conflict_1
* conflict_2
Data/mock_plugin.esp
conflict_1
* conflict_2
Data/textures/mock_texture.nif
conflict_1
* conflict_2
"""
)

with pytest.raises(Warning) as warning:
controller.collisions(conflict_1)
assert warning.value.args == (expected,)

with pytest.raises(Warning) as warning:
controller.collisions(conflict_2)
assert warning.value.args == (expected,)

with pytest.raises(Warning) as warning:
controller.collisions(normal_mod)
assert warning.value.args == ("No conflicts.",)

0 comments on commit 5d89c81

Please sign in to comment.