mirror of https://github.com/Sonarr/Sonarr
Fixed: Size on disk calculation including multi-episode files multiple times
Closes #5296
This commit is contained in:
parent
9a96dee49d
commit
be98862ce0
|
@ -4,6 +4,7 @@ using System.Linq;
|
||||||
using FizzWare.NBuilder;
|
using FizzWare.NBuilder;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using NzbDrone.Core.MediaFiles;
|
using NzbDrone.Core.MediaFiles;
|
||||||
using NzbDrone.Core.Qualities;
|
using NzbDrone.Core.Qualities;
|
||||||
|
@ -180,5 +181,25 @@ namespace NzbDrone.Core.Test.SeriesStatsTests
|
||||||
stats.Should().HaveCount(1);
|
stats.Should().HaveCount(1);
|
||||||
stats.First().SizeOnDisk.Should().Be(_episodeFile.Size);
|
stats.First().SizeOnDisk.Should().Be(_episodeFile.Size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_duplicate_size_for_multi_episode_files()
|
||||||
|
{
|
||||||
|
GivenEpisodeWithFile();
|
||||||
|
GivenEpisode();
|
||||||
|
GivenEpisodeFile();
|
||||||
|
|
||||||
|
var episode2 = _episode.JsonClone();
|
||||||
|
|
||||||
|
episode2.Id = 0;
|
||||||
|
episode2.EpisodeNumber += 1;
|
||||||
|
|
||||||
|
Db.Insert(episode2);
|
||||||
|
|
||||||
|
var stats = Subject.SeriesStatistics();
|
||||||
|
|
||||||
|
stats.Should().HaveCount(1);
|
||||||
|
stats.First().SizeOnDisk.Should().Be(_episodeFile.Size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ namespace NzbDrone.Core.SeriesStats
|
||||||
return new SqlBuilder()
|
return new SqlBuilder()
|
||||||
.Select(@"Episodes.SeriesId AS SeriesId,
|
.Select(@"Episodes.SeriesId AS SeriesId,
|
||||||
Episodes.SeasonNumber,
|
Episodes.SeasonNumber,
|
||||||
SUM(COALESCE(EpisodeFiles.Size, 0)) AS SizeOnDisk,
|
SUM(COALESCE(EpisodeFiles.Size, 0)) * COUNT(DISTINCT EpisodeFiles.Id) / COUNT(EpisodeFiles.Id) AS SizeOnDisk,
|
||||||
GROUP_CONCAT(EpisodeFiles.ReleaseGroup, '|') AS ReleaseGroupsString,
|
GROUP_CONCAT(EpisodeFiles.ReleaseGroup, '|') AS ReleaseGroupsString,
|
||||||
COUNT(*) AS TotalEpisodeCount,
|
COUNT(*) AS TotalEpisodeCount,
|
||||||
SUM(CASE WHEN AirdateUtc <= @currentDate OR EpisodeFileId > 0 THEN 1 ELSE 0 END) AS AvailableEpisodeCount,
|
SUM(CASE WHEN AirdateUtc <= @currentDate OR EpisodeFileId > 0 THEN 1 ELSE 0 END) AS AvailableEpisodeCount,
|
||||||
|
|
Loading…
Reference in New Issue