From 093ed23140e3d951775105c653ca377ad789dd65 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 1 Jul 2019 00:44:37 -0700 Subject: [PATCH] New: Improve logging when checking if release is an upgrade for an existing file --- .../UpgradeSpecificationFixture.cs | 26 +++++++++++++++++++ .../Specifications/UpgradableSpecification.cs | 8 +++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs index e8383a0db..0ee7387ae 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs @@ -164,5 +164,31 @@ namespace NzbDrone.Core.Test.DecisionEngineTests NoPreferredWordScore) .Should().BeFalse(); } + + [Test] + public void should_return_false_if_release_and_existing_file_are_the_same() + { + var profile = new QualityProfile + { + Items = Qualities.QualityFixture.GetDefaultQualities(), + }; + + var langProfile = new LanguageProfile + { + Languages = LanguageFixture.GetDefaultLanguages(), + Cutoff = Language.English + }; + + Subject.IsUpgradable( + profile, + langProfile, + new QualityModel(Quality.HDTV720p, new Revision(version: 1)), + Language.English, + NoPreferredWordScore, + new QualityModel(Quality.HDTV720p, new Revision(version: 1)), + Language.English, + NoPreferredWordScore) + .Should().BeFalse(); + } } } diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs index a278d0b09..2a590e44a 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs @@ -30,6 +30,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications private bool IsPreferredWordUpgradable(int currentScore, int newScore) { + _logger.Debug("Comparing preferred word score. Current: {0} New: {1}", currentScore, newScore); + return newScore > currentScore; } @@ -40,6 +42,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications if (qualityCompare > 0) { + _logger.Debug("New item has a better quality"); return true; } @@ -54,6 +57,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications if (_configService.DownloadPropersAndRepacks != ProperDownloadTypes.DoNotPrefer && newQuality?.Revision.CompareTo(currentQuality.Revision) > 0) { + _logger.Debug("New item has a better quality revision"); return true; } @@ -61,6 +65,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications if (languageCompare > 0) { + _logger.Debug("New item has a more preferred language"); return true; } @@ -69,13 +74,14 @@ namespace NzbDrone.Core.DecisionEngine.Specifications _logger.Debug("Existing item has better language, skipping"); return false; } - + if (!IsPreferredWordUpgradable(currentScore, newScore)) { _logger.Debug("Existing item has a better preferred word score, skipping"); return false; } + _logger.Debug("New item has a better preferred word score"); return true; }