Fixed: Testing qBittorrent after credentials change would always pass tests

This commit is contained in:
Mark McDowall
2025-11-16 13:06:57 -08:00
committed by Auggie
parent 58a1d9357b
commit 467c8d497d
2 changed files with 9 additions and 3 deletions
@@ -28,6 +28,7 @@ namespace NzbDrone.Common.Http
public TimeSpan RateLimit { get; set; }
public bool LogResponseContent { get; set; }
public ICredentials NetworkCredential { get; set; }
public bool StoreRequestCookie { get; set; }
public Dictionary<string, string> Cookies { get; private set; }
public List<HttpFormData> FormData { get; private set; }
public Action<HttpRequest> PostProcess { get; set; }
@@ -44,6 +45,7 @@ namespace NzbDrone.Common.Http
Cookies = new Dictionary<string, string>();
FormData = new List<HttpFormData>();
LogHttpError = true;
StoreRequestCookie = true;
}
public HttpRequestBuilder(bool useHttps, string host, int port, string urlBase = null)
@@ -111,6 +113,7 @@ namespace NzbDrone.Common.Http
request.RateLimit = RateLimit;
request.LogResponseContent = LogResponseContent;
request.Credentials = NetworkCredential;
request.StoreRequestCookie = StoreRequestCookie;
foreach (var header in Headers)
{
@@ -342,7 +342,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
var requestBuilder = new HttpRequestBuilder(settings.UseSsl, settings.Host, settings.Port, settings.UrlBase)
{
LogResponseContent = true,
NetworkCredential = new BasicNetworkCredential(settings.Username, settings.Password)
StoreRequestCookie = false
};
return requestBuilder;
}
@@ -403,7 +403,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
return;
}
var authKey = string.Format("{0}:{1}", requestBuilder.BaseUrl, settings.Password);
var authKey = $"{requestBuilder.BaseUrl}:{settings.Username}:{settings.Password}";
var cookies = _authCookieCache.Find(authKey);
@@ -411,7 +411,10 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
{
_authCookieCache.Remove(authKey);
var authLoginRequest = BuildRequest(settings).Resource("/api/v2/auth/login")
var authRequestBuilder = BuildRequest(settings);
authRequestBuilder.NetworkCredential = new BasicNetworkCredential(settings.Username, settings.Password);
var authLoginRequest = authRequestBuilder.Resource("/api/v2/auth/login")
.Post()
.AddFormParameter("username", settings.Username ?? string.Empty)
.AddFormParameter("password", settings.Password ?? string.Empty)