1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-24 22:36:19 -04:00

New: Custom Format Language Condition

This commit is contained in:
Qstick
2022-08-14 14:07:26 -05:00
parent 52760e0908
commit 89b0b04e08
243 changed files with 1345 additions and 3956 deletions
@@ -13,7 +13,6 @@ using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Parser;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Profiles;
using NzbDrone.Core.Profiles.Languages;
using NzbDrone.Core.Profiles.Qualities;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Test.CustomFormats;
@@ -54,16 +53,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Console.WriteLine(profile.ToJson());
}
private void GivenLanguageProfile(LanguageProfile profile)
{
_remoteMovie.Series.LanguageProfile = profile;
Console.WriteLine(profile.ToJson());
}
private void GivenFileQuality(QualityModel quality, Language language)
{
_remoteMovie.Episodes.First().EpisodeFile = Builder<EpisodeFile>.CreateNew().With(x => x.Quality = quality).With(x => x.Language = language).Build();
_remoteMovie.Episodes.First().EpisodeFile = Builder<EpisodeFile>.CreateNew().With(x => x.Quality = quality).With(x => x.Languages = new List<Language> { language }).Build();
}
private void GivenNewQuality(QualityModel quality)
@@ -100,13 +92,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.DVD, new Revision(version: 2)), Language.English);
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
@@ -121,13 +106,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)), Language.English);
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
}
@@ -142,13 +120,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)), Language.English);
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
}
@@ -163,13 +134,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 1)), Language.English);
GivenNewQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
@@ -185,40 +149,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)), Language.English);
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_true_if_quality_cutoff_is_met_and_quality_is_higher_but_language_is_not_met()
{
GivenProfile(new QualityProfile
{
Cutoff = Quality.HDTV720p.Id,
Items = Qualities.QualityFixture.GetDefaultQualities(),
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(),
Cutoff = Language.Spanish,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)), Language.English);
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_if_quality_cutoff_is_met_and_quality_is_higher_but_language_is_met()
{
@@ -229,13 +164,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(),
Cutoff = Language.Spanish,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)), Language.Spanish);
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
@@ -251,13 +179,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(),
Cutoff = Language.Spanish,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)), Language.French);
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
@@ -273,13 +194,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(),
Cutoff = Language.Spanish,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.SDTV, new Revision(version: 2)), Language.French);
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
@@ -295,13 +209,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(),
Cutoff = Language.Spanish,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.SDTV, new Revision(version: 2)), Language.French);
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
@@ -318,13 +225,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.HDTV720p), Language.English);
GivenNewQuality(new QualityModel(Quality.Bluray1080p));
@@ -346,13 +246,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = true
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)), Language.English);
GivenNewQuality(new QualityModel(Quality.WEBDL1080p, new Revision(version: 2)));
@@ -369,13 +262,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
UpgradeAllowed = false
});
GivenLanguageProfile(new LanguageProfile
{
Languages = LanguageFixture.GetDefaultLanguages(Language.English),
Cutoff = Language.English,
UpgradeAllowed = true
});
GivenFileQuality(new QualityModel(Quality.WEBDL1080p), Language.English);
GivenNewQuality(new QualityModel(Quality.Bluray1080p));