mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Merge pull request #1992 from Bond-009/namingtests
Fix naming tests (cherry picked from commit 78e0afae2fba48212dab2986818b5156868592fb) Signed-off-by: Joshua Boniface <joshua@boniface.me>
This commit is contained in:
parent
46ab046c34
commit
2de763eef9
@ -311,6 +311,14 @@ namespace Emby.Naming.Common
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// This isn't a Kodi naming rule, but the expression below causes false positives,
|
||||||
|
// so we make sure this one gets tested first.
|
||||||
|
// "Foo Bar 889"
|
||||||
|
new EpisodeExpression(@".*[\\\/](?![Ee]pisode)(?<seriesname>(\w+\s*?)*)\s(?<epnumber>\d{1,3})(-(?<endingepnumber>\d{2,3}))*[^\\\/]*$")
|
||||||
|
{
|
||||||
|
IsNamed = true
|
||||||
|
},
|
||||||
|
|
||||||
new EpisodeExpression("[\\\\/\\._ \\[\\(-]([0-9]+)x([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$")
|
new EpisodeExpression("[\\\\/\\._ \\[\\(-]([0-9]+)x([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$")
|
||||||
{
|
{
|
||||||
SupportsAbsoluteEpisodeNumbers = true
|
SupportsAbsoluteEpisodeNumbers = true
|
||||||
@ -328,9 +336,10 @@ namespace Emby.Naming.Common
|
|||||||
|
|
||||||
// *** End Kodi Standard Naming
|
// *** End Kodi Standard Naming
|
||||||
|
|
||||||
// [bar] Foo - 1 [baz]
|
// [bar] Foo - 1 [baz]
|
||||||
new EpisodeExpression(@".*?(\[.*?\])+.*?(?<seriesname>(\w+\s)+?)[-\s_]+(?<epnumber>\d+).*$"){
|
new EpisodeExpression(@".*?(\[.*?\])+.*?(?<seriesname>(\w+\s*?)+?)[-\s_]+(?<epnumber>\d+).*$")
|
||||||
IsNamed=false,
|
{
|
||||||
|
IsNamed = true
|
||||||
},
|
},
|
||||||
new EpisodeExpression(@".*(\\|\/)[sS]?(?<seasonnumber>\d+)[xX](?<epnumber>\d+)[^\\\/]*$")
|
new EpisodeExpression(@".*(\\|\/)[sS]?(?<seasonnumber>\d+)[xX](?<epnumber>\d+)[^\\\/]*$")
|
||||||
{
|
{
|
||||||
|
@ -23,9 +23,10 @@
|
|||||||
|
|
||||||
<!-- Code analysers-->
|
<!-- Code analysers-->
|
||||||
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
|
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4" />
|
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4" PrivateAssets="All" />
|
||||||
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
|
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
|
||||||
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" />
|
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="All" />
|
||||||
|
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
||||||
<PackageReference Include="coverlet.collector" Version="1.1.0" />
|
<PackageReference Include="coverlet.collector" Version="1.1.0" />
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
namespace Emby.Naming.TV
|
using Emby.Naming.Common;
|
||||||
{
|
using Emby.Naming.TV;
|
||||||
using Emby.Naming.Common;
|
using Xunit;
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
|
namespace Jellyfin.Naming.Tests
|
||||||
|
{
|
||||||
public class EpisodePathParserTest
|
public class EpisodePathParserTest
|
||||||
{
|
{
|
||||||
[Theory]
|
[Theory]
|
||||||
@ -21,8 +22,8 @@ namespace Emby.Naming.TV
|
|||||||
Assert.Equal(season, res.SeasonNumber);
|
Assert.Equal(season, res.SeasonNumber);
|
||||||
Assert.Equal(episode, res.EpisodeNumber);
|
Assert.Equal(episode, res.EpisodeNumber);
|
||||||
|
|
||||||
//testing other paths delimeter
|
// testing other paths delimeter
|
||||||
var res2 = p.Parse(path.Replace("/", "\\"), false);
|
var res2 = p.Parse(path.Replace('/', '\\'), false);
|
||||||
Assert.True(res2.Success);
|
Assert.True(res2.Success);
|
||||||
Assert.Equal(name, res2.SeriesName);
|
Assert.Equal(name, res2.SeriesName);
|
||||||
Assert.Equal(season, res2.SeasonNumber);
|
Assert.Equal(season, res2.SeasonNumber);
|
||||||
@ -31,24 +32,24 @@ namespace Emby.Naming.TV
|
|||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData("/media/Foo/Foo 889", "Foo", 889)]
|
[InlineData("/media/Foo/Foo 889", "Foo", 889)]
|
||||||
[InlineData("/media/Foo/[Bar] Foo Baz - 11 [1080p]", "Foo Baz", 11)]
|
[InlineData("/media/Foo/[Bar] Foo Baz - 11 [1080p]", "Foo Baz", 11)]
|
||||||
public void ParseEpisodeWithoutSeason(string path, string name, int episode)
|
public void ParseEpisodeWithoutSeason(string path, string name, int episode)
|
||||||
{
|
{
|
||||||
NamingOptions o = new NamingOptions();
|
NamingOptions o = new NamingOptions();
|
||||||
EpisodePathParser p = new EpisodePathParser(o);
|
EpisodePathParser p = new EpisodePathParser(o);
|
||||||
var res = p.Parse(path, true, null, null, true);
|
var res = p.Parse(path, true, fillExtendedInfo: true);
|
||||||
|
|
||||||
Assert.True(res.Success);
|
Assert.True(res.Success);
|
||||||
Assert.Equal(name, res.SeriesName);
|
Assert.Equal(name, res.SeriesName);
|
||||||
Assert.True(res.SeasonNumber == null);
|
Assert.Null(res.SeasonNumber);
|
||||||
Assert.Equal(episode, res.EpisodeNumber);
|
Assert.Equal(episode, res.EpisodeNumber);
|
||||||
|
|
||||||
//testing other paths delimeter
|
// testing other paths delimeter
|
||||||
var res2 = p.Parse(path.Replace("/", "\\"), false, null, null, true);
|
var res2 = p.Parse(path.Replace('/', '\\'), false, fillExtendedInfo: false);
|
||||||
Assert.True(res2.Success);
|
Assert.True(res2.Success);
|
||||||
Assert.Equal(name, res2.SeriesName);
|
Assert.Equal(name, res2.SeriesName);
|
||||||
Assert.True(res2.SeasonNumber == null);
|
Assert.Null(res2.SeasonNumber);
|
||||||
Assert.Equal(episode, res2.EpisodeNumber);
|
Assert.Equal(episode, res2.EpisodeNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,15 +2,14 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||||
<PackageReference Include="xunit" Version="2.4.0" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
||||||
<PackageReference Include="coverlet.collector" Version="1.0.1" />
|
<PackageReference Include="coverlet.collector" Version="1.1.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user