diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 030b6f588..0d6e617a5 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -37,9 +37,14 @@ jobs: with: dotnet-version: '9.0.x' include-prerelease: true - + + - name: Test + if: ${{ github.ref == 'refs/heads/main' }} + run: dotnet test /p:EnableWindowsTargeting=true + - name: Test - run: dotnet test /p:EnableWindowsTargeting=true --filter "Category!=FlakeyNetwork" + if: ${{ github.ref != 'refs/heads/main' }} + run: dotnet test /p:EnableWindowsTargeting=true --filter "Category!=RequiresOAuth" #- name: Upload Test Folder on Failure # if: ${{ failure() }} diff --git a/Wabbajack.Downloaders.Dispatcher.Test/DownloaderTests.cs b/Wabbajack.Downloaders.Dispatcher.Test/DownloaderTests.cs index 9f0598a9e..885e512ce 100644 --- a/Wabbajack.Downloaders.Dispatcher.Test/DownloaderTests.cs +++ b/Wabbajack.Downloaders.Dispatcher.Test/DownloaderTests.cs @@ -219,51 +219,6 @@ public DownloaderTests(DownloadDispatcher dispatcher, TemporaryFileManager temp) */ }; - private bool AutoPassTest(Archive archive) - { - return false; - } - - [Theory] - [Trait("Category", "FlakeyNetwork")] - [MemberData(nameof(TestStates))] - public async Task TestDownloadingFile(Archive archive, Archive badArchive) - { - if (AutoPassTest(archive)) return; - await using var tempFile = _temp.CreateFile(); - var hash = await _dispatcher.Download(archive, tempFile.Path, CancellationToken.None); - Assert.Equal(archive.Hash, hash); - } - - [Theory] - [Trait("Category", "FlakeyNetwork")] - [MemberData(nameof(TestStates))] - public async Task TestFileVerification(Archive goodArchive, Archive badArchive) - { - if (AutoPassTest(goodArchive)) return; - Assert.True(await _dispatcher.Verify(goodArchive, CancellationToken.None)); - Assert.False(await _dispatcher.Verify(badArchive, CancellationToken.None)); - } - - [Theory] - [Trait("Category", "FlakeyNetwork")] - [MemberData(nameof(TestStates))] - public async Task CanParseAndUnParseUrls(Archive goodArchive, Archive badArchive) - { - if (AutoPassTest(goodArchive)) return; - var downloader = _dispatcher.Downloader(goodArchive); - if (downloader is IUrlDownloader urlDownloader) - { - var unparsed = urlDownloader.UnParse(goodArchive.State); - - var parsed = urlDownloader.Parse(unparsed); - Assert.NotNull(parsed); - - Assert.Equal(goodArchive.State.GetType(), parsed.GetType()); - Assert.True(await _dispatcher.Verify(new Archive {State = parsed, Hash = goodArchive.Hash}, CancellationToken.None)); - } - } - [Theory] [MemberData(nameof(TestStates))] public async Task CanParseAndUnParseMetaInis(Archive goodArchive, Archive badArchive) diff --git a/Wabbajack.Installer.Test/StandardInstallerTest.cs b/Wabbajack.Installer.Test/StandardInstallerTest.cs index bb8ac293a..3385565df 100644 --- a/Wabbajack.Installer.Test/StandardInstallerTest.cs +++ b/Wabbajack.Installer.Test/StandardInstallerTest.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Wabbajack.DTOs.JsonConverters; +using Wabbajack.Networking.WabbajackClientApi; using Wabbajack.Paths; using Wabbajack.Paths.IO; using Xunit; @@ -52,6 +53,9 @@ public async Task CanInstallAList() VideoMemorySize = 8L * 1024 * 1024 * 1024 }; + var configuration = _provider.GetService(); + configuration.IgnoreMirrorList = true; + var installer = _provider.GetService(); Assert.True(await installer.Begin(CancellationToken.None)); diff --git a/Wabbajack.Networking.NexusApi.Test/NexusApiTests.cs b/Wabbajack.Networking.NexusApi.Test/NexusApiTests.cs index c30c6661f..80eea1246 100644 --- a/Wabbajack.Networking.NexusApi.Test/NexusApiTests.cs +++ b/Wabbajack.Networking.NexusApi.Test/NexusApiTests.cs @@ -14,6 +14,7 @@ public NexusApiTests(NexusApi api) } [Fact] + [Trait("Category", "RequiresOAuth")] public async Task CanValidateUser() { var (info, headers) = await _api.Validate(); @@ -21,6 +22,7 @@ public async Task CanValidateUser() } [Fact] + [Trait("Category", "RequiresOAuth")] public async Task CanGetModInfo() { var (_, originalHeaders) = await _api.Validate(); diff --git a/Wabbajack.Networking.WabbajackClientApi/Client.cs b/Wabbajack.Networking.WabbajackClientApi/Client.cs index 1b7aff4f0..b20b08b5c 100644 --- a/Wabbajack.Networking.WabbajackClientApi/Client.cs +++ b/Wabbajack.Networking.WabbajackClientApi/Client.cs @@ -50,6 +50,7 @@ public class Client private readonly ITokenProvider _token; private bool _inited; + public bool IgnoreMirrorList { get; set; } = false; public Client(ILogger logger, HttpClient client, ITokenProvider token, DTOSerializer dtos, @@ -108,6 +109,9 @@ public async Task LoadDownloadAllowList() public async Task LoadMirrors() { + if (IgnoreMirrorList) + return Array.Empty(); + var str = await _client.GetStringAsync(_configuration.MirrorList); return JsonSerializer.Deserialize(str, _dtos.Options) ?? []; }