Add Word Alignment engine: #1395
434 passed, 18 failed and 0 skipped
✅ src/DataAccess/test/SIL.DataAccess.Tests/TestResults/test-results.trx
25 tests were completed in 5s with 25 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
SIL.DataAccess.MemoryRepositoryTests | 25✅ | 407ms |
✅ src/Machine/test/Serval.Machine.Shared.Tests/TestResults/test-results.trx
102 tests were completed in 23s with 102 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Machine.Shared.Services.ClearMLServiceTests | 1✅ | 131ms | ||
Serval.Machine.Shared.Services.DistributedReaderWriterLockFactoryTests | 3✅ | 55ms | ||
Serval.Machine.Shared.Services.DistributedReaderWriterLockTests | 15✅ | 1s | ||
Serval.Machine.Shared.Services.InMemoryStorageTests | 5✅ | 9ms | ||
Serval.Machine.Shared.Services.LanguageTagServiceTests | 19✅ | 5s | ||
Serval.Machine.Shared.Services.LocalStorageTests | 5✅ | 10ms | ||
Serval.Machine.Shared.Services.MessageOutboxDeliveryServiceTests | 4✅ | 64ms | ||
Serval.Machine.Shared.Services.MessageOutboxServiceTests | 4✅ | 14ms | ||
Serval.Machine.Shared.Services.ModelCleanupServiceTests | 1✅ | 15ms | ||
Serval.Machine.Shared.Services.NmtClearMLBuildJobFactoryTests | 2✅ | 14ms | ||
Serval.Machine.Shared.Services.NmtEngineServiceTests | 4✅ | 1s | ||
Serval.Machine.Shared.Services.PreprocessBuildJobTests | 22✅ | 6s | ||
Serval.Machine.Shared.Services.ServalPlatformOutboxMessageHandlerTests | 2✅ | 45ms | ||
Serval.Machine.Shared.Services.SmtTransferEngineServiceTests | 15✅ | 2s |
❌ src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
230 tests were completed in 758s with 212 passed, 18 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.ApiServer.DataFilesTests | 23✅ | 65s | ||
Serval.ApiServer.StatusTests | 4✅ | 11s | ||
Serval.ApiServer.TranslationEngineTests | 118✅ | 1❌ | 385s | |
Serval.ApiServer.WebhooksTests | 11✅ | 26s | ||
Serval.ApiServer.WordAlignmentEngineTests | 56✅ | 17❌ | 263s |
❌ Serval.ApiServer.TranslationEngineTests
✅ AddCorpusToEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ AddCorpusToEngineByIdAsync(["update:translation_engines"],201,"e00000000000000000000001")
✅ AddCorpusToEngineByIdAsync(["update:translation_engines"],404,"e00000000000000000000004")
✅ AddParallelCorpusToEngineById_NotAuthorized
✅ AddParallelCorpusToEngineByIdAsync
✅ CancelCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],200,"e00000000000000000000001")
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],204,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],404,"e00000000000000000000004",False)
✅ CreateEngineAsync(["create:translation_engines", "read:translation_engines"],201,"Echo")
❌ CreateEngineAsync(["create:translation_engines"],400,"NotARealKindOfMT")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 167
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 198
at Serval.Translation.Controllers.TranslationEnginesController.CreateAsync(TranslationEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Controllers/TranslationEnginesController.cs:line 133
at lambda_method995(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.TranslationEnginesClient.CreateAsync(TranslationEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 2783
at Serval.ApiServer.TranslationEngineTests.<>c__DisplayClass27_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 289
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
✅ CreateEngineAsync(["read:files"],403,"Echo")
✅ DataFileUpdate_Propagated
✅ DeleteCorpusAndFilesAsync
✅ DeleteCorpusButNotFilesAsync
✅ DeleteCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ DeleteEngineByIdAsync(["delete:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ DeleteEngineByIdAsync(["delete:translation_engines"],404,"e00000000000000000000004")
✅ DeleteEngineByIdAsync(["read:translation_engines"],403,"e00000000000000000000001")
✅ DeleteParallelCorpusByIdForEngineById_NoSuchCorpus
✅ DeleteParallelCorpusByIdForEngineById_NoSuchEngine
✅ DeleteParallelCorpusByIdForEngineById_NotAuthorized
✅ DeleteParallelCorpusByIdForEngineByIdAsync
✅ GetAllAsync(["read:files"],403)
✅ GetAllAsync(["read:translation_engines"],200)
✅ GetAllBuildsForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:translation_engines"],200,"be0000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetAllCorporaForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetAllCorporaForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ GetAllCorporaForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ GetAllParallelCorporaForEngineById_NoSuchEngine
✅ GetAllParallelCorporaForEngineById_NotAuthorized
✅ GetAllParallelCorporaForEngineByIdAsync
✅ GetAllPretranslationsAsync_CorpusDoesNotExist
✅ GetAllPretranslationsAsync_EngineDoesNotExist
✅ GetAllPretranslationsAsync_EngineNotBuilt
✅ GetAllPretranslationsAsync_Exists
✅ GetAllPretranslationsAsync_TextIdDoesNotExist
✅ GetAllPretranslationsAsync_TextIdExists
✅ GetBuildByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],200,"be0000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],404,"be0000000000000000000001",False)
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],408,"be0000000000000000000001",True)
✅ GetByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetByIdAsync(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetByIdAsync(["read:translation_engines"],403,"e00000000000000000000003")
✅ GetByIdAsync(["read:translation_engines"],404,"e00000000000000000000004")
✅ GetByIdAsync(["read:translation_engines"],404,"phony_id")
✅ GetCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],200,"e00000000000000000000001",True)
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001",True)
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ GetCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],204,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],408,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:files"],403,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:translation_engines"],404,"e00000000000000000000004")
✅ GetLanguageInfo_Error
✅ GetLanguageInfoAsync
✅ GetParallelCorpusByIdForEngineById_NoCorpora
✅ GetParallelCorpusByIdForEngineById_NoSuchCorpus
✅ GetParallelCorpusByIdForEngineById_NoSuchEngine
✅ GetParallelCorpusByIdForEngineById_NotAuthorized
✅ GetParallelCorpusByIdForEngineByIdAsync
✅ GetPretranslatedUsfmAsync_BookDoesNotExist
✅ GetPretranslatedUsfmAsync_BookExists
✅ GetPretranslationsByTextId
✅ GetPretranslationsByTextId_EngineDoesNotExist
✅ GetQueueAsync_NotAuthorized
✅ GetQueueAsync("Echo")
✅ GetQueueAsync("Nmt")
✅ GetWordGraphForSegmentByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],404,"e00000000000000000000004")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ StartBuild_ParallelCorpus
✅ StartBuildAsync_Corpus_NoFilter
✅ StartBuildAsync_ParallelCorpus
✅ StartBuildAsync_ParallelCorpus_NoFilter
✅ StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources
✅ StartBuildAsync_ParallelCorpus_PretranslateNoCorpusSpecified
✅ StartBuildAsync_ParallelCorpus_PretranslateParallelAndNormalCorpus
✅ StartBuildAsync_ParallelCorpus_TrainOnNoCorpusSpecified
✅ StartBuildAsync_ParallelCorpus_TrainOnParallelAndNormalCorpus
✅ StartBuildForEngineAsync_UnparsableOptions()
✅ StartBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],201,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],400,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ TrainEngineByIdOnSegmentPairAsync(["read:files"],403,"e00000000000000000000001")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],200,"e00000000000000000000001")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],404,"e00000000000000000000004")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],409,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004")
✅ TranslateSegmentWithEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],404,"e00000000000000000000004")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ TryToQueueMultipleBuildsPerSingleUser
✅ UpdateCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ UpdateParallelCorpusByIdForEngineById_NoSuchCorpus
✅ UpdateParallelCorpusByIdForEngineById_NoSuchEngine
✅ UpdateParallelCorpusByIdForEngineById_NotAuthorized
✅ UpdateParallelCorpusByIdForEngineByIdAsync
❌ Serval.ApiServer.WordAlignmentEngineTests
✅ AddParallelCorpusToEngineById_NotAuthorized
✅ AddParallelCorpusToEngineByIdAsync
✅ CancelCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:word_alignment_engines"],200,"e00000000000000000000001")
✅ CancelCurrentBuildForEngineByIdAsync(["update:word_alignment_engines"],204,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:word_alignment_engines"],404,"e00000000000000000000004",False)
❌ CreateEngineAsync(["create:word_alignment_engines", "read:word_alignment_engines"],201,"EchoWordAlignment")
Serval.Client.ServalApiException : The engine does not exist.
Status: 404
Response:
{"type":"https://tools.ietf.org/html/rfc9110#section-15.5.5","title":"Not Found","status":404,"traceId":"00-359dbe8867d78d7e3c170bb2dd48a942-ad18f8e30db825e7-01"}
❌ CreateEngineAsync(["create:word_alignment_engines"],400,"NotARealKindOfMT")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 94
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 111
at Serval.WordAlignment.Controllers.WordAlignmentEnginesController.CreateAsync(WordAlignmentEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Controllers/WordAlignmentEnginesController.cs:line 120
at lambda_method4099(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.WordAlignmentEnginesClient.CreateAsync(WordAlignmentEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 7430
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass26_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 264
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
✅ CreateEngineAsync(["read:files"],403,"EchoWordAlignment")
✅ DataFileUpdate_Propagated
❌ DeleteEngineByIdAsync(["delete:word_alignment_engines", "read:word_alignment_engines"],200,"e00000000000000000000001")
Assert.That(results, Has.Count.EqualTo(3))
Expected: property Count equal to 3
But was: 2
✅ DeleteEngineByIdAsync(["delete:word_alignment_engines"],404,"e00000000000000000000004")
✅ DeleteEngineByIdAsync(["read:word_alignment_engines"],403,"e00000000000000000000001")
✅ DeleteParallelCorpusByIdForEngineById_NoSuchCorpus
✅ DeleteParallelCorpusByIdForEngineById_NoSuchEngine
✅ DeleteParallelCorpusByIdForEngineById_NotAuthorized
✅ DeleteParallelCorpusByIdForEngineByIdAsync
✅ GetAllAsync(["read:files"],403)
❌ GetAllAsync(["read:word_alignment_engines"],200)
Assert.That(results, Has.Count.EqualTo(4))
Expected: property Count equal to 4
But was: 3
✅ GetAllBuildsForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:word_alignment_engines"],200,"be0000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:word_alignment_engines"],404,"e00000000000000000000004",False)
✅ GetAllParallelCorporaForEngineById_NoSuchEngine
✅ GetAllParallelCorporaForEngineById_NotAuthorized
✅ GetAllParallelCorporaForEngineByIdAsync
✅ GetAllWordAlignmentsAsync_CorpusDoesNotExist
✅ GetAllWordAlignmentsAsync_EngineDoesNotExist
✅ GetAllWordAlignmentsAsync_EngineNotBuilt
✅ GetAllWordAlignmentsAsync_Exists
✅ GetAllWordAlignmentsAsync_TextIdDoesNotExist
✅ GetAllWordAlignmentsAsync_TextIdExists
✅ GetBuildByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:word_alignment_engines"],200,"be0000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:word_alignment_engines"],404,"be0000000000000000000001",False)
✅ GetBuildByIdForEngineByIdAsync(["read:word_alignment_engines"],404,"e00000000000000000000004",False)
✅ GetBuildByIdForEngineByIdAsync(["read:word_alignment_engines"],408,"be0000000000000000000001",True)
✅ GetByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetByIdAsync(["read:word_alignment_engines"],200,"e00000000000000000000001")
✅ GetByIdAsync(["read:word_alignment_engines"],403,"e00000000000000000000003")
✅ GetByIdAsync(["read:word_alignment_engines"],404,"e00000000000000000000004")
✅ GetByIdAsync(["read:word_alignment_engines"],404,"phony_id")
✅ GetCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:word_alignment_engines"],200,"e00000000000000000000001")
✅ GetCurrentBuildForEngineByIdAsync(["read:word_alignment_engines"],204,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:word_alignment_engines"],404,"e00000000000000000000004",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:word_alignment_engines"],408,"e00000000000000000000001")
❌ GetParallelCorpusByIdForEngineById_NoCorpora
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
❌ GetParallelCorpusByIdForEngineById_NoSuchCorpus
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
❌ GetParallelCorpusByIdForEngineById_NoSuchEngine
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
✅ GetParallelCorpusByIdForEngineById_NotAuthorized
❌ GetParallelCorpusByIdForEngineByIdAsync
Serval.Client.ServalApiException : The authenticated client cannot perform the operation or does not own the engine.
Status: 403
Response:
✅ GetWordAlignmentsByTextId
✅ GetWordAlignmentsByTextId_EngineDoesNotExist
✅ StartBuild_ParallelCorpus
✅ StartBuildAsync_ParallelCorpus
❌ StartBuildAsync_ParallelCorpus_NoFilter
Assert.That(build.TrainOn[0].SourceFilters, Is.Null)
Expected: null
But was: < <Serval.Client.ParallelCorpusFilter2> >
❌ StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: null
✅ StartBuildAsync_ParallelCorpus_PretranslateNoCorpusSpecified
✅ StartBuildAsync_ParallelCorpus_TrainOnNoCorpusSpecified
❌ StartBuildForEngineAsync_UnparsableOptions()
Assert.That(() => client.StartBuildAsync(ECHO_ENGINE1_ID, tbc), Throws.TypeOf<ServalApiException>().With.Message.Contains("Unable to parse field 'options'"))
Expected: <Serval.Client.ServalApiException> and property Message containing "Unable to parse field 'options'"
But was: <Newtonsoft.Json.JsonSerializationException: Cannot write a null value for property 'corpusId'. Property requires a value. Path 'trainOn[0].sourceFilters[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Serval.Client.WordAlignmentEnginesClient.StartBuildAsync(String id, WordAlignmentBuildConfig buildConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 8674
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.GetResult()
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.ExceptionHelper.RecordException(Delegate parameterlessDelegate, String parameterName)>
❌ StartBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <Newtonsoft.Json.JsonSerializationException: Cannot write a null value for property 'corpusId'. Property requires a value. Path 'trainOn[0].sourceFilters[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Serval.Client.WordAlignmentEnginesClient.StartBuildAsync(String id, WordAlignmentBuildConfig buildConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 8674
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass56_0.<<StartBuildForEngineByIdAsync>b__1>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1019
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
❌ StartBuildForEngineByIdAsync(["update:word_alignment_engines", "create:word_alignment_engines", "read:word_alignment_engines"],201,"e00000000000000000000001")
Newtonsoft.Json.JsonSerializationException : Cannot write a null value for property 'corpusId'. Property requires a value. Path 'trainOn[0].sourceFilters[0]'.
❌ StartBuildForEngineByIdAsync(["update:word_alignment_engines", "create:word_alignment_engines", "read:word_alignment_engines"],400,"e00000000000000000000001")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <Newtonsoft.Json.JsonSerializationException: Cannot write a null value for property 'corpusId'. Property requires a value. Path 'trainOn[0].sourceFilters[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Serval.Client.WordAlignmentEnginesClient.StartBuildAsync(String id, WordAlignmentBuildConfig buildConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 8674
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass56_0.<<StartBuildForEngineByIdAsync>b__1>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1019
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
❌ StartBuildForEngineByIdAsync(["update:word_alignment_engines", "create:word_alignment_engines", "read:word_alignment_engines"],404,"e00000000000000000000004")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <Newtonsoft.Json.JsonSerializationException: Cannot write a null value for property 'corpusId'. Property requires a value. Path 'trainOn[0].sourceFilters[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Serval.Client.WordAlignmentEnginesClient.StartBuildAsync(String id, WordAlignmentBuildConfig buildConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 8674
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass56_0.<<StartBuildForEngineByIdAsync>b__1>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1019
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
✅ TranslateSegmentWithEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ TranslateSegmentWithEngineByIdAsync(["read:word_alignment_engines", "update:word_alignment_engines"],200,"e00000000000000000000001")
❌ TranslateSegmentWithEngineByIdAsync(["read:word_alignment_engines", "update:word_alignment_engines"],404,"e00000000000000000000004")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <NSubstitute.Exceptions.RedundantArgumentMatcherException: Some argument specifications (e.g. Arg.Is, Arg.Any) were left over after the last call.
This is often caused by using an argument spec with a call to a member NSubstitute does not handle (such as a non-virtual member or a call to an instance which is not a substitute), or for a purpose other than specifying a call (such as using an arg spec as a return value). For example:
var sub = Substitute.For<SomeClass>();
var realType = new MyRealType(sub);
// INCORRECT, arg spec used on realType, not a substitute:
realType.SomeMethod(Arg.Any<int>()).Returns(2);
// INCORRECT, arg spec used as a return value, not to specify a call:
sub.VirtualMethod(2).Returns(Arg.Any<int>());
// INCORRECT, arg spec used with a non-virtual method:
sub.NonVirtualMethod(Arg.Any<int>()).Returns(2);
// CORRECT, arg spec used to specify virtual call on a substitute:
sub.VirtualMethod(Arg.Any<int>()).Returns(2);
To fix this make sure you only use argument specifications with calls to substitutes. If your substitute is a class, make sure the member is virtual.
Another possible cause is that the argument spec type does not match the actual argument type, but code compiles due to an implicit cast. For example, Arg.Any<int>() was used, but Arg.Any<double>() was required.
NOTE: the cause of this exception can be in a previously executed test. Use the diagnostics below to see the types of any redundant arg specs, then work out where they are being created.
Diagnostic information:
Remaining (non-bound) argument specifications:
any CancellationToken
All argument specifications:
any CancellationToken
at NSubstitute.Core.Arguments.ArgumentSpecificationsFactory.Create(IList`1 argumentSpecs, Object[] arguments, IParameterInfo[] parameterInfos, MethodInfo methodInfo, MatchArgs matchArgs)
at NSubstitute.Routing.Handlers.RecordCallSpecificationHandler.Handle(ICall call)
at NSubstitute.Proxies.CastleDynamicProxy.CastleForwardingInterceptor.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.ObjectProxy.OpenZipFile(String path)
at Serval.ApiServer.WordAlignmentEngineTests.TestEnvironment.CreateFileSystem(IServiceProvider sp) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1655
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at lambda_method5493(Closure, IServiceProvider, Object[])
at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.WordAlignmentEnginesClient.GetWordAlignmentAsync(String id, WordAlignmentRequest wordAlignmentRequest, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 7742
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass28_0.<<TranslateSegmentWithEngineByIdAsync>b__1>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 382
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
❌ TranslateSegmentWithEngineByIdAsync(["read:word_alignment_engines", "update:word_alignment_engines"],409,"e00000000000000000000001")
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: null
✅ TryToQueueMultipleBuildsPerSingleUser
✅ UpdateParallelCorpusByIdForEngineById_NoSuchCorpus
✅ UpdateParallelCorpusByIdForEngineById_NoSuchEngine
✅ UpdateParallelCorpusByIdForEngineById_NotAuthorized
✅ UpdateParallelCorpusByIdForEngineByIdAsync
✅ src/Serval/test/Serval.DataFiles.Tests/TestResults/test-results.trx
11 tests were completed in 10s with 11 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.DataFiles.Services.CorpusServiceTests | 2✅ | 196ms | ||
Serval.DataFiles.Services.DataFileServiceTests | 8✅ | 82ms | ||
Serval.DataFiles.Services.DeletedFileCleanerTests | 1✅ | 2s |
✅ src/Serval/test/Serval.E2ETests/TestResults/test-results.trx
No tests found
✅ src/Serval/test/Serval.Shared.Tests/TestResults/test-results.trx
3 tests were completed in 6s with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Shared.Services.ScriptureDataFileServiceTests | 2✅ | 218ms | ||
Serval.Shared.Utils.ObjectToInferredTypesConverterTest | 1✅ | 39ms |
✅ src/Serval/test/Serval.Translation.Tests/TestResults/test-results.trx
50 tests were completed in 8s with 50 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Translation.Services.BuildCleanupServiceTests | 1✅ | 125ms | ||
Serval.Translation.Services.BuildServiceTests | 4✅ | 40ms | ||
Serval.Translation.Services.EngineCleanupServiceTests | 1✅ | 21ms | ||
Serval.Translation.Services.EngineServiceTests | 30✅ | 525ms | ||
Serval.Translation.Services.PlatformServiceTests | 3✅ | 96ms | ||
Serval.Translation.Services.PretranslationServiceTests | 11✅ | 275ms |
✅ src/Serval/test/Serval.Webhooks.Tests/TestResults/test-results.trx
5 tests were completed in 6s with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Webhooks.Services.WebhookJobTests | 5✅ | 154ms |
✅ src/Serval/test/Serval.WordAlignment.Tests/TestResults/test-results.trx
25 tests were completed in 6s with 25 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.WordAlignment.Services.BuildServiceTests | 4✅ | 87ms | ||
Serval.WordAlignment.Services.EngineServiceTests | 18✅ | 515ms | ||
Serval.WordAlignment.Services.PlatformServiceTests | 3✅ | 86ms |
✅ src/ServiceToolkit/test/SIL.ServiceToolkit.Tests/TestResults/test-results.trx
1 tests were completed in 6s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
SIL.ServiceToolkit.Services.ParallelCorpusPreprocessingServiceTests | 1✅ | 127ms |
Annotations
github-actions / NUnit Tests
Serval.ApiServer.TranslationEngineTests ► CreateEngineAsync(["create:translation_engines"],400,"NotARealKindOfMT")
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 167
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 198
at Serval.Translation.Controllers.TranslationEnginesController.CreateAsync(TranslationEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Controllers/TranslationEnginesController.cs:line 133
at lambda_method995(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.TranslationEnginesClient.CreateAsync(TranslationEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 2783
at Serval.ApiServer.TranslationEngineTests.<>c__DisplayClass27_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 289
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
Raw output
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 167
at Serval.Translation.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 198
at Serval.Translation.Controllers.TranslationEnginesController.CreateAsync(TranslationEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Controllers/TranslationEnginesController.cs:line 133
at lambda_method995(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.TranslationEnginesClient.CreateAsync(TranslationEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 2783
at Serval.ApiServer.TranslationEngineTests.<>c__DisplayClass27_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 289
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
at Serval.ApiServer.TranslationEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 287
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.TranslationEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 287
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Serval.ApiServer.TranslationEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType)
at InvokeStub_TranslationEngineTests.CreateEngineAsync(Object, Span`1)
Check failure on line 7574 in src/Serval/src/Serval.Client/Client.g.cs
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► CreateEngineAsync(["create:word_alignment_engines", "read:word_alignment_engines"],201,"EchoWordAlignment")
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Serval.Client.ServalApiException : The engine does not exist.
Status: 404
Response:
{"type":"https://tools.ietf.org/html/rfc9110#section-15.5.5","title":"Not Found","status":404,"traceId":"00-359dbe8867d78d7e3c170bb2dd48a942-ad18f8e30db825e7-01"}
Raw output
Serval.Client.ServalApiException : The engine does not exist.
Status: 404
Response:
{"type":"https://tools.ietf.org/html/rfc9110#section-15.5.5","title":"Not Found","status":404,"traceId":"00-359dbe8867d78d7e3c170bb2dd48a942-ad18f8e30db825e7-01"}
at Serval.Client.WordAlignmentEnginesClient.GetAsync(String id, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 7574
at Serval.ApiServer.WordAlignmentEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 256
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► CreateEngineAsync(["create:word_alignment_engines"],400,"NotARealKindOfMT")
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 94
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 111
at Serval.WordAlignment.Controllers.WordAlignmentEnginesController.CreateAsync(WordAlignmentEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Controllers/WordAlignmentEnginesController.cs:line 120
at lambda_method4099(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.WordAlignmentEnginesClient.CreateAsync(WordAlignmentEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 7430
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass26_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 264
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
Raw output
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: <System.NullReferenceException: Object reference not set to an instance of an object.
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 94
at Serval.WordAlignment.Services.EngineService.CreateAsync(Engine engine, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Services/EngineService.cs:line 111
at Serval.WordAlignment.Controllers.WordAlignmentEnginesController.CreateAsync(WordAlignmentEngineConfigDto engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.WordAlignment/Controllers/WordAlignmentEnginesController.cs:line 120
at lambda_method4099(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.WordAlignmentEnginesClient.CreateAsync(WordAlignmentEngineConfig engineConfig, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 7430
at Serval.ApiServer.WordAlignmentEngineTests.<>c__DisplayClass26_0.<<CreateEngineAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 264
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Assert.ThrowsAsync(IResolveConstraint expression, AsyncTestDelegate code, String message, Object[] args)>
at Serval.ApiServer.WordAlignmentEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 262
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 262
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Serval.ApiServer.WordAlignmentEngineTests.CreateEngineAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineType)
at InvokeStub_WordAlignmentEngineTests.CreateEngineAsync(Object, Span`1)
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► DeleteEngineByIdAsync(["delete:word_alignment_engines", "read:word_alignment_engines"],200,"e00000000000000000000001")
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(results, Has.Count.EqualTo(3))
Expected: property Count equal to 3
But was: 2
Raw output
Assert.That(results, Has.Count.EqualTo(3))
Expected: property Count equal to 3
But was: 2
at Serval.ApiServer.WordAlignmentEngineTests.DeleteEngineByIdAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineId) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 312
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.DeleteEngineByIdAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String engineId) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 312
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► GetAllAsync(["read:word_alignment_engines"],200)
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(results, Has.Count.EqualTo(4))
Expected: property Count equal to 4
But was: 3
Raw output
Assert.That(results, Has.Count.EqualTo(4))
Expected: property Count equal to 4
But was: 3
at Serval.ApiServer.WordAlignmentEngineTests.GetAllAsync(IEnumerable`1 scope, Int32 expectedStatusCode) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 191
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.GetAllAsync(IEnumerable`1 scope, Int32 expectedStatusCode) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 191
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► GetParallelCorpusByIdForEngineById_NoCorpora
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
Raw output
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoCorpora() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 605
1) at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoCorpora() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 605
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► GetParallelCorpusByIdForEngineById_NoSuchCorpus
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
Raw output
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoSuchCorpus() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 639
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoSuchCorpus() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 639
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► GetParallelCorpusByIdForEngineById_NoSuchEngine
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
Raw output
Assert.That(ex?.StatusCode, Is.EqualTo(404))
Expected: 404
But was: 403
at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoSuchEngine() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 620
1) at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineById_NoSuchEngine() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 620
Check failure on line 8257 in src/Serval/src/Serval.Client/Client.g.cs
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► GetParallelCorpusByIdForEngineByIdAsync
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Serval.Client.ServalApiException : The authenticated client cannot perform the operation or does not own the engine.
Status: 403
Response:
Raw output
Serval.Client.ServalApiException : The authenticated client cannot perform the operation or does not own the engine.
Status: 403
Response:
at Serval.Client.WordAlignmentEnginesClient.GetParallelCorpusAsync(String id, String parallelCorpusId, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 8257
at Serval.ApiServer.WordAlignmentEngineTests.GetParallelCorpusByIdForEngineByIdAsync() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 585
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► StartBuildAsync_ParallelCorpus_NoFilter
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(build.TrainOn[0].SourceFilters, Is.Null)
Expected: null
But was: < <Serval.Client.ParallelCorpusFilter2> >
Raw output
Assert.That(build.TrainOn[0].SourceFilters, Is.Null)
Expected: null
But was: < <Serval.Client.ParallelCorpusFilter2> >
at Serval.ApiServer.WordAlignmentEngineTests.StartBuildAsync_ParallelCorpus_NoFilter() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1285
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.StartBuildAsync_ParallelCorpus_NoFilter() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1285
github-actions / NUnit Tests
Serval.ApiServer.WordAlignmentEngineTests ► StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: null
Raw output
Assert.That(caughtException, expression)
Expected: <Serval.Client.ServalApiException>
But was: null
at Serval.ApiServer.WordAlignmentEngineTests.StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1334
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.WordAlignmentEngineTests.StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/WordAlignmentEngineTests.cs:line 1334