forked from LykosAI/StabilityMatrix
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathComfyLaunchArgMigrationTests.cs
More file actions
86 lines (78 loc) · 2.85 KB
/
Copy pathComfyLaunchArgMigrationTests.cs
File metadata and controls
86 lines (78 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using NSubstitute;
using StabilityMatrix.Core.Helper;
using StabilityMatrix.Core.Helper.Cache;
using StabilityMatrix.Core.Models;
using StabilityMatrix.Core.Models.Packages;
using StabilityMatrix.Core.Processes;
using StabilityMatrix.Core.Python;
using StabilityMatrix.Core.Services;
namespace StabilityMatrix.Tests.Models.Packages;
[TestClass]
public class ComfyLaunchArgMigrationTests
{
[TestMethod]
public void NormalizeLaunchArguments_StripsObsoleteNormalVramAndPersistsUpdatedArgs()
{
var settingsManager = Substitute.For<ISettingsManager>();
var package = new TestComfyUI(
Substitute.For<IGithubApiCache>(),
settingsManager,
Substitute.For<IDownloadService>(),
Substitute.For<IPrerequisiteHelper>(),
Substitute.For<IPyInstallationManager>(),
Substitute.For<IPipWheelService>()
);
var installedPackage = new InstalledPackage
{
Id = Guid.NewGuid(),
PackageName = "ComfyUI",
LaunchArgs =
[
new LaunchOption
{
Name = "--normalvram",
Type = LaunchOptionType.Bool,
OptionValue = true,
},
],
};
var fallbackArguments = ProcessArgs.FromQuoted(
installedPackage
.LaunchArgs.Select(option => option.ToArgString())
.Where(argument => argument is not null)
.Select(argument => argument!)
);
var normalizedArguments = package.Normalize(installedPackage, fallbackArguments);
Assert.IsFalse(installedPackage.LaunchArgs.Any(option => option.Name == "--normalvram"));
Assert.IsFalse(normalizedArguments.Contains("--normalvram"));
settingsManager
.Received(1)
.SaveLaunchArgs(
installedPackage.Id,
Arg.Is<IEnumerable<LaunchOption>>(options =>
options.All(option => option.Name != "--normalvram")
)
);
}
private sealed class TestComfyUI : ComfyUI
{
public TestComfyUI(
IGithubApiCache githubApi,
ISettingsManager settingsManager,
IDownloadService downloadService,
IPrerequisiteHelper prerequisiteHelper,
IPyInstallationManager pyInstallationManager,
IPipWheelService pipWheelService
)
: base(
githubApi,
settingsManager,
downloadService,
prerequisiteHelper,
pyInstallationManager,
pipWheelService
) { }
public ProcessArgs Normalize(InstalledPackage installedPackage, ProcessArgs fallbackArguments) =>
NormalizeLaunchArguments(installedPackage, fallbackArguments);
}
}