mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-01-10 23:29:53 +02:00
Merge branch 'kay.one' of github.com:NzbDrone/NzbDrone into markus
Conflicts: NzbDrone.Core.Test/EpisodeProviderTest.cs NzbDrone.Core/Providers/PostDownloadProvider.cs
This commit is contained in:
commit
66b4b094f9
@ -453,7 +453,7 @@ public void should_try_to_get_existing_episode_using_tvdbid_first()
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var fakeSeries = Builder<Series>.CreateNew().With(c => c.SeriesId = seriesId).Build();
|
var fakeSeries = Builder<Series>.CreateNew().With(c => c.SeriesId = seriesId).Build();
|
||||||
var fakeEpisodeList = new List<Episode> { new Episode { TvDbEpisodeId = 99, SeasonNumber = 10, EpisodeNumber = 10, Series = fakeSeries} };
|
var fakeEpisodeList = new List<Episode> { new Episode { TvDbEpisodeId = 99, SeasonNumber = 10, EpisodeNumber = 10, Series = fakeSeries } };
|
||||||
|
|
||||||
var mocker = new AutoMoqer();
|
var mocker = new AutoMoqer();
|
||||||
mocker.GetMock<IDatabase>()
|
mocker.GetMock<IDatabase>()
|
||||||
@ -512,7 +512,7 @@ public void should_try_to_get_existing_episode_using_tvdbid_first_then_season_ep
|
|||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
mocker.VerifyAllMocks();
|
mocker.VerifyAllMocks();
|
||||||
mocker.GetMock<IDatabase>().Verify(c => c.UpdateMany(new List<Episode>{localEpisode}), Times.Once());
|
mocker.GetMock<IDatabase>().Verify(c => c.UpdateMany(new List<Episode> { localEpisode }), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -528,7 +528,7 @@ public void existing_episodes_keep_their_episodeId_file_id()
|
|||||||
var currentEpisodes = new List<Episode>();
|
var currentEpisodes = new List<Episode>();
|
||||||
foreach (var tvDbEpisode in tvdbSeries.Episodes)
|
foreach (var tvDbEpisode in tvdbSeries.Episodes)
|
||||||
{
|
{
|
||||||
currentEpisodes.Add(new Episode { TvDbEpisodeId = tvDbEpisode.Id, EpisodeId = 99, EpisodeFileId = 69, Ignored = true, Series = fakeSeries});
|
currentEpisodes.Add(new Episode { TvDbEpisodeId = tvDbEpisode.Id, EpisodeId = 99, EpisodeFileId = 69, Ignored = true, Series = fakeSeries });
|
||||||
}
|
}
|
||||||
|
|
||||||
var mocker = new AutoMoqer();
|
var mocker = new AutoMoqer();
|
||||||
@ -545,7 +545,7 @@ public void existing_episodes_keep_their_episodeId_file_id()
|
|||||||
|
|
||||||
mocker.GetMock<IDatabase>()
|
mocker.GetMock<IDatabase>()
|
||||||
.Setup(c => c.UpdateMany(It.IsAny<IEnumerable<Episode>>()))
|
.Setup(c => c.UpdateMany(It.IsAny<IEnumerable<Episode>>()))
|
||||||
.Callback<IEnumerable<Episode>>(ep => updatedEpisodes =ep.ToList());
|
.Callback<IEnumerable<Episode>>(ep => updatedEpisodes = ep.ToList());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
||||||
@ -1497,7 +1497,7 @@ public void SetPostDownloadStatus(string folderName, PostDownloadStatusType post
|
|||||||
mocker.GetMock<SeriesProvider>().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries);
|
mocker.GetMock<SeriesProvider>().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
mocker.Resolve<EpisodeProvider>().SetPostDownloadStatus(fakeEpisodes.Select(e => e.EpisodeId), postDownloadStatus);
|
mocker.Resolve<EpisodeProvider>().SetPostDownloadStatus(fakeEpisodes.Select(e => e.EpisodeId).ToList(), postDownloadStatus);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
var result = db.Fetch<Episode>();
|
var result = db.Fetch<Episode>();
|
||||||
@ -1572,5 +1572,11 @@ public void SetPostDownloadStatus_No_EpisodeId_In_Database()
|
|||||||
var result = db.Fetch<Episode>();
|
var result = db.Fetch<Episode>();
|
||||||
result.Where(e => e.PostDownloadStatus == postDownloadStatus).Count().Should().Be(0);
|
result.Where(e => e.PostDownloadStatus == postDownloadStatus).Count().Should().Be(0);
|
||||||
}
|
}
|
||||||
|
[ExpectedException(typeof(ArgumentException))]
|
||||||
|
public void SetPostDownloadStatus_should_throw_if_episode_list_is_empty()
|
||||||
|
{
|
||||||
|
var mocker = new AutoMoqer();
|
||||||
|
mocker.Resolve<EpisodeProvider>().SetPostDownloadStatus(new List<int>(), PostDownloadStatusType.Failed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -16,6 +16,8 @@ protected override void Write(LogEventInfo logEvent)
|
|||||||
|
|
||||||
Logger.Trace("Sending Exception to Exceptioneer. {0}", Process.GetCurrentProcess().ProcessName);
|
Logger.Trace("Sending Exception to Exceptioneer. {0}", Process.GetCurrentProcess().ProcessName);
|
||||||
|
|
||||||
|
logEvent.Exception.Data.Add("Message", logEvent.Message);
|
||||||
|
|
||||||
new Client
|
new Client
|
||||||
{
|
{
|
||||||
ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265",
|
ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265",
|
||||||
|
@ -397,8 +397,10 @@ public virtual void DeleteInvalidEpisodes(Series series, TvdbSeries tvDbSeriesIn
|
|||||||
Logger.Trace("Finished deleting invalid episodes for {0}", series.SeriesId);
|
Logger.Trace("Finished deleting invalid episodes for {0}", series.SeriesId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetPostDownloadStatus(IEnumerable<int> episodeIds, PostDownloadStatusType postDownloadStatus)
|
public virtual void SetPostDownloadStatus(List<int> episodeIds, PostDownloadStatusType postDownloadStatus)
|
||||||
{
|
{
|
||||||
|
if (episodeIds.Count == 0) throw new ArgumentException("episodeIds should contain one or more episode ids.");
|
||||||
|
|
||||||
var episodeIdString = String.Join(", ", episodeIds);
|
var episodeIdString = String.Join(", ", episodeIds);
|
||||||
|
|
||||||
var episodeIdQuery = String.Format(@"UPDATE Episodes SET PostDownloadStatus = {0}
|
var episodeIdQuery = String.Format(@"UPDATE Episodes SET PostDownloadStatus = {0}
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using Ninject;
|
using Ninject;
|
||||||
using NzbDrone.Core.Model;
|
using NzbDrone.Core.Model;
|
||||||
@ -85,7 +84,7 @@ public virtual void ProcessDropFolder(string dropFolder)
|
|||||||
if (subfolderInfo.Name.StartsWith("_NzbDrone_"))
|
if (subfolderInfo.Name.StartsWith("_NzbDrone_"))
|
||||||
{
|
{
|
||||||
if (subfolderInfo.Name.StartsWith("_NzbDrone_InvalidSeries_"))
|
if (subfolderInfo.Name.StartsWith("_NzbDrone_InvalidSeries_"))
|
||||||
ReProcessDownload(new PostDownloadInfoModel{ Name = subfolderInfo.FullName, Status = PostDownloadStatusType.InvalidSeries });
|
ReProcessDownload(new PostDownloadInfoModel { Name = subfolderInfo.FullName, Status = PostDownloadStatusType.InvalidSeries });
|
||||||
|
|
||||||
else if (subfolderInfo.Name.StartsWith("_NzbDrone_ParseError_"))
|
else if (subfolderInfo.Name.StartsWith("_NzbDrone_ParseError_"))
|
||||||
ReProcessDownload(new PostDownloadInfoModel { Name = subfolderInfo.FullName, Status = PostDownloadStatusType.ParseError });
|
ReProcessDownload(new PostDownloadInfoModel { Name = subfolderInfo.FullName, Status = PostDownloadStatusType.ParseError });
|
||||||
@ -173,17 +172,25 @@ public virtual void ProcessFailedOrUnpackingDownload(DirectoryInfo directoryInfo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add to InfoList for possible later processing
|
||||||
|
InfoList.Add(new PostDownloadInfoModel{ Name = directoryInfo.FullName,
|
||||||
|
Added = DateTime.Now,
|
||||||
|
Status = postDownloadStatus
|
||||||
|
});
|
||||||
|
|
||||||
//Remove the error prefix before processing
|
//Remove the error prefix before processing
|
||||||
var parseResult = Parser.ParseTitle(directoryInfo.Name.Substring(GetPrefixLength(postDownloadStatus)));
|
var parseResult = Parser.ParseTitle(directoryInfo.Name.Substring(GetPrefixLength(postDownloadStatus)));
|
||||||
|
|
||||||
parseResult.Series = _seriesProvider.FindSeries(parseResult.CleanTitle);
|
parseResult.Series = _seriesProvider.FindSeries(parseResult.CleanTitle);
|
||||||
|
|
||||||
var episodeIds = new List<int>();
|
List<int> episodeIds;
|
||||||
|
|
||||||
if (parseResult.EpisodeNumbers.Count == 0 && parseResult.FullSeason)
|
if (parseResult.EpisodeNumbers.Count == 0 && parseResult.FullSeason)
|
||||||
|
{
|
||||||
episodeIds =
|
episodeIds =
|
||||||
_episodeProvider.GetEpisodesBySeason(parseResult.Series.SeriesId, parseResult.SeasonNumber)
|
_episodeProvider.GetEpisodesBySeason(parseResult.Series.SeriesId, parseResult.SeasonNumber)
|
||||||
.Select(e => e.EpisodeId).ToList();
|
.Select(e => e.EpisodeId).ToList();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
episodeIds = _episodeProvider.GetEpisodesByParseResult(parseResult).Select(e => e.EpisodeId).ToList();
|
episodeIds = _episodeProvider.GetEpisodesByParseResult(parseResult).Select(e => e.EpisodeId).ToList();
|
||||||
|
|
||||||
|
35
SharedLiveTemplates.xml
Normal file
35
SharedLiveTemplates.xml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<TemplatesExport family="Live Templates">
|
||||||
|
<Template uid="3ec01bf0-ad83-4b4c-a0b2-381f28e3c369" shortcut="Test" description="Test Method" text="[NUnit.Framework.Test]
[NUnit.Framework.Description($TEST_NAME$)]
public void $TEST_METHOD_NAME$() 
{
 //Act

 //Assert


}" reformat="True" shortenQualifiedReferences="True">
|
||||||
|
<Scopes>
|
||||||
|
<Scope type="InCSharpTypeMember" minimumLanguageVersion="2.0" />
|
||||||
|
</Scopes>
|
||||||
|
<Categories />
|
||||||
|
<Variables>
|
||||||
|
<Variable name="TEST_NAME" expression="" initialRange="0" />
|
||||||
|
<Variable name="TEST_METHOD_NAME" expression="spacestounderstrokes(TEST_METHOD_NAME)" initialRange="-1" />
|
||||||
|
</Variables>
|
||||||
|
<CustomProperties />
|
||||||
|
</Template>
|
||||||
|
<Template uid="3ec01bf0-ad83-4b4c-a0b2-381f28e3c369" shortcut="Test" description="Test Method" text="[NUnit.Framework.Test]
[NUnit.Framework.Description("$TEST_NAME$")]
public void $TEST_METHOD_NAME$() 
{
 
 //Act

 //Assert

}" reformat="True" shortenQualifiedReferences="True">
|
||||||
|
<Scopes>
|
||||||
|
<Scope type="InCSharpTypeMember" minimumLanguageVersion="2.0" />
|
||||||
|
</Scopes>
|
||||||
|
<Categories />
|
||||||
|
<Variables>
|
||||||
|
<Variable name="TEST_NAME" expression="" initialRange="0" />
|
||||||
|
<Variable name="TEST_METHOD_NAME" expression="spacestounderstrokes(TEST_NAME)" initialRange="-1" />
|
||||||
|
</Variables>
|
||||||
|
<CustomProperties />
|
||||||
|
</Template>
|
||||||
|
<Template uid="3ec01bf0-ad83-4b4c-a0b2-381f28e3c369" shortcut="Test" description="Test Method" text="[NUnit.Framework.Test]
[NUnit.Framework.Description("$TEST_NAME$")]
public void $TEST_METHOD_NAME$() 
{
 //Setup


 //Act


 //Assert

}" reformat="True" shortenQualifiedReferences="True">
|
||||||
|
<Scopes>
|
||||||
|
<Scope type="InCSharpTypeMember" minimumLanguageVersion="2.0" />
|
||||||
|
</Scopes>
|
||||||
|
<Categories />
|
||||||
|
<Variables>
|
||||||
|
<Variable name="TEST_NAME" expression="" initialRange="0" />
|
||||||
|
<Variable name="TEST_METHOD_NAME" expression="spacestounderstrokes(TEST_NAME)" initialRange="-1" />
|
||||||
|
</Variables>
|
||||||
|
<CustomProperties />
|
||||||
|
</Template>
|
||||||
|
</TemplatesExport>
|
Loading…
Reference in New Issue
Block a user