Fixed: Version check for SABnzbd develop

This commit is contained in:
Mark McDowall 2016-09-20 20:40:15 -07:00
parent 080e2e9eff
commit bf8d68a873
2 changed files with 44 additions and 5 deletions

View File

@ -12,6 +12,7 @@ using NzbDrone.Core.Tv;
using NzbDrone.Test.Common; using NzbDrone.Test.Common;
using NzbDrone.Core.RemotePathMappings; using NzbDrone.Core.RemotePathMappings;
using NzbDrone.Common.Disk; using NzbDrone.Common.Disk;
using NzbDrone.Core.Validation;
namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests
{ {
@ -436,5 +437,18 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests
error.IsValid.Should().Be(expected); error.IsValid.Should().Be(expected);
} }
[Test]
public void should_test_develop_version_successfully()
{
Mocker.GetMock<ISabnzbdProxy>()
.Setup(v => v.GetVersion(It.IsAny<SabnzbdSettings>()))
.Returns("develop");
var result = new NzbDroneValidationResult(Subject.Test());
result.IsValid.Should().BeTrue();
result.HasWarnings.Should().BeTrue();
}
} }
} }

View File

@ -280,15 +280,31 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
var version = _proxy.GetVersion(Settings); var version = _proxy.GetVersion(Settings);
var parsed = VersionRegex.Match(version); var parsed = VersionRegex.Match(version);
int actualMajor;
int actualMinor;
int actualPatch;
string actualCandidate;
if (!parsed.Success) if (!parsed.Success)
{ {
return false; if (!version.Equals("develop", StringComparison.InvariantCultureIgnoreCase))
{
return false;
}
actualMajor = 1;
actualMinor = 1;
actualPatch = 0;
actualCandidate = null;
} }
var actualMajor = Convert.ToInt32(parsed.Groups["major"].Value); else
var actualMinor = Convert.ToInt32(parsed.Groups["minor"].Value); {
var actualPatch = Convert.ToInt32(parsed.Groups["patch"].Value.Replace("x", "")); actualMajor = Convert.ToInt32(parsed.Groups["major"].Value);
var actualCandidate = parsed.Groups["candidate"].Value.ToUpper(); actualMinor = Convert.ToInt32(parsed.Groups["minor"].Value);
actualPatch = Convert.ToInt32(parsed.Groups["patch"].Value.Replace("x", ""));
actualCandidate = parsed.Groups["candidate"].Value.ToUpper();
}
if (actualMajor > major) if (actualMajor > major)
{ {
@ -340,6 +356,15 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
if (!parsed.Success) if (!parsed.Success)
{ {
if (version.Equals("develop", StringComparison.InvariantCultureIgnoreCase))
{
return new NzbDroneValidationFailure("Version", "Sabnzbd develop version, assuming version 1.1.0 or higher.")
{
IsWarning = true,
DetailedDescription = "Sonarr may not be able to support new features added to SABnzbd when running develop versions."
};
}
return new ValidationFailure("Version", "Unknown Version: " + version); return new ValidationFailure("Version", "Unknown Version: " + version);
} }