mirror of https://github.com/Radarr/Radarr
CalculateFilePath will use configured season folder, with tests.
MoveFile creates folder before move.
This commit is contained in:
parent
a31858bb4c
commit
584a96a4f2
|
@ -25,9 +25,6 @@ namespace NzbDrone.Core.Test
|
|||
// ReSharper disable InconsistentNaming
|
||||
public class MediaFileProviderTests : TestBase
|
||||
{
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void get_series_files()
|
||||
{
|
||||
|
@ -136,5 +133,30 @@ namespace NzbDrone.Core.Test
|
|||
result.Should().OnlyContain(e => e.EpisodeFileId > 0);
|
||||
ExceptionVerification.ExcpectedWarns(1);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[TestCase("30 Rock - S01E05 - Episode Title", 1, true, "Season %0s", @"C:\Test\30 Rock\Season 01\30 Rock - S01E05 - Episode Title.mkv")]
|
||||
[TestCase("30 Rock - S01E05 - Episode Title", 1, true, "Season %s", @"C:\Test\30 Rock\Season 1\30 Rock - S01E05 - Episode Title.mkv")]
|
||||
[TestCase("30 Rock - S01E05 - Episode Title", 1, false, "Season %0s", @"C:\Test\30 Rock\30 Rock - S01E05 - Episode Title.mkv")]
|
||||
[TestCase("30 Rock - S01E05 - Episode Title", 1, false, "Season %s", @"C:\Test\30 Rock\30 Rock - S01E05 - Episode Title.mkv")]
|
||||
[TestCase("30 Rock - S01E05 - Episode Title", 1, true, "ReallyUglySeasonFolder %s", @"C:\Test\30 Rock\ReallyUglySeasonFolder 1\30 Rock - S01E05 - Episode Title.mkv")]
|
||||
public void CalculateFilePath_SeasonFolder_SingleNumber(string filename, int seasonNumber, bool useSeasonFolder, string seasonFolderFormat, string expectedPath)
|
||||
{
|
||||
//Setup
|
||||
var fakeSeries = Builder<Series>.CreateNew()
|
||||
.With(s => s.Title = "30 Rock")
|
||||
.With(s => s.Path = @"C:\Test\30 Rock")
|
||||
.With(s => s.SeasonFolder = useSeasonFolder)
|
||||
.Build();
|
||||
|
||||
var mocker = new AutoMoqer();
|
||||
mocker.GetMock<ConfigProvider>().Setup(e => e.SeasonFolderFormat).Returns(seasonFolderFormat);
|
||||
|
||||
//Act
|
||||
var result = mocker.Resolve<MediaFileProvider>().CalculateFilePath(fakeSeries, 1, filename, ".mkv");
|
||||
|
||||
//Assert
|
||||
Assert.AreEqual(expectedPath, result.FullName);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -142,7 +142,6 @@ namespace NzbDrone.Core.Providers
|
|||
return episodeFile;
|
||||
}
|
||||
|
||||
|
||||
public virtual bool MoveEpisodeFile(EpisodeFile episodeFile)
|
||||
{
|
||||
if (episodeFile == null)
|
||||
|
@ -153,6 +152,9 @@ namespace NzbDrone.Core.Providers
|
|||
string newFileName = _mediaFileProvider.GetNewFilename(episodes, series.Title, episodeFile.Quality);
|
||||
var newFile = _mediaFileProvider.CalculateFilePath(series, episodes.First().SeasonNumber, newFileName, Path.GetExtension(episodeFile.Path));
|
||||
|
||||
//Ensure the folder Exists before trying to move it (No error is thrown if the folder already exists)
|
||||
_diskProvider.CreateDirectory(newFile.DirectoryName);
|
||||
|
||||
//Do the rename
|
||||
Logger.Trace("Attempting to rename {0} to {1}", episodeFile.Path, newFile.FullName);
|
||||
_diskProvider.MoveFile(episodeFile.Path, newFile.FullName);
|
||||
|
@ -164,7 +166,6 @@ namespace NzbDrone.Core.Providers
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Removes files that no longer exist on disk from the database
|
||||
/// </summary>
|
||||
|
|
|
@ -83,7 +83,11 @@ namespace NzbDrone.Core.Providers
|
|||
string path = series.Path;
|
||||
if (series.SeasonFolder)
|
||||
{
|
||||
path = Path.Combine(path, "Season " + seasonNumber);
|
||||
var seasonFolder = _configProvider.SeasonFolderFormat
|
||||
.Replace("%0s", seasonNumber.ToString("00"))
|
||||
.Replace("%s", seasonNumber.ToString());
|
||||
|
||||
path = Path.Combine(path, seasonFolder);
|
||||
}
|
||||
|
||||
path = Path.Combine(path, fileName + extention);
|
||||
|
|
Loading…
Reference in New Issue