PDF Rendering on Pi (64bit) & Backup Fix (#1204)
* Updated dependencies. SharpCompress has been updated to v2.1.0 which should fix pdf rendering on pi/arm64 devices. * Removed some dependencies not needed and updated the Backup code to account for themes and ensure everything gets copied every time.
This commit is contained in:
parent
3ec4814525
commit
0fcaaff976
11 changed files with 160 additions and 65 deletions
|
@ -1,6 +1,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.IO.Abstractions.TestingHelpers;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using API.Data;
|
||||
|
@ -36,6 +37,9 @@ public class BackupServiceTests
|
|||
private const string CoverImageDirectory = "C:/kavita/config/covers/";
|
||||
private const string BackupDirectory = "C:/kavita/config/backups/";
|
||||
private const string LogDirectory = "C:/kavita/config/logs/";
|
||||
private const string ConfigDirectory = "C:/kavita/config/";
|
||||
private const string BookmarkDirectory = "C:/kavita/config/bookmarks";
|
||||
private const string ThemesDirectory = "C:/kavita/config/theme";
|
||||
|
||||
public BackupServiceTests()
|
||||
{
|
||||
|
@ -110,6 +114,8 @@ public class BackupServiceTests
|
|||
fileSystem.AddDirectory(CoverImageDirectory);
|
||||
fileSystem.AddDirectory(BackupDirectory);
|
||||
fileSystem.AddDirectory(LogDirectory);
|
||||
fileSystem.AddDirectory(ThemesDirectory);
|
||||
fileSystem.AddDirectory(BookmarkDirectory);
|
||||
fileSystem.AddDirectory("C:/data/");
|
||||
|
||||
return fileSystem;
|
||||
|
@ -121,6 +127,7 @@ public class BackupServiceTests
|
|||
|
||||
#region GetLogFiles
|
||||
|
||||
[Fact]
|
||||
public void GetLogFiles_ExpectAllFiles_NoRollingFiles()
|
||||
{
|
||||
var filesystem = CreateFileSystem();
|
||||
|
@ -128,16 +135,82 @@ public class BackupServiceTests
|
|||
filesystem.AddFile($"{LogDirectory}kavita1.log", new MockFileData(""));
|
||||
|
||||
var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
|
||||
// You can't mock _config extensions because they are static
|
||||
_config.GetMaxRollingFiles().Returns(1);
|
||||
_config.GetLoggingFileName().Returns(ds.FileSystem.Path.Join(LogDirectory, "kavita.log"));
|
||||
var inMemorySettings = new Dictionary<string, string> {
|
||||
{"Logging:File:Path", "config/logs/kavita.log"},
|
||||
{"Logging:File:MaxRollingFiles", "0"},
|
||||
};
|
||||
IConfiguration configuration = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(inMemorySettings)
|
||||
.Build();
|
||||
|
||||
var backupService = new BackupService(_logger, _unitOfWork, ds, _config, _messageHub);
|
||||
var backupService = new BackupService(_logger, _unitOfWork, ds, configuration, _messageHub);
|
||||
|
||||
Assert.Single(backupService.GetLogFiles(1, LogDirectory));
|
||||
var backupLogFiles = backupService.GetLogFiles(0, LogDirectory).ToList();
|
||||
Assert.Single(backupLogFiles);
|
||||
Assert.Equal(API.Parser.Parser.NormalizePath($"{LogDirectory}kavita.log"), API.Parser.Parser.NormalizePath(backupLogFiles.First()));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetLogFiles_ExpectAllFiles_WithRollingFiles()
|
||||
{
|
||||
var filesystem = CreateFileSystem();
|
||||
filesystem.AddFile($"{LogDirectory}kavita.log", new MockFileData(""));
|
||||
filesystem.AddFile($"{LogDirectory}kavita1.log", new MockFileData(""));
|
||||
|
||||
var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
|
||||
var inMemorySettings = new Dictionary<string, string> {
|
||||
{"Logging:File:Path", "config/logs/kavita.log"},
|
||||
{"Logging:File:MaxRollingFiles", "1"},
|
||||
};
|
||||
IConfiguration configuration = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(inMemorySettings)
|
||||
.Build();
|
||||
|
||||
var backupService = new BackupService(_logger, _unitOfWork, ds, configuration, _messageHub);
|
||||
|
||||
var backupLogFiles = backupService.GetLogFiles(1, LogDirectory).Select(API.Parser.Parser.NormalizePath).ToList();
|
||||
Assert.NotEmpty(backupLogFiles.Where(file => file.Equals(API.Parser.Parser.NormalizePath($"{LogDirectory}kavita.log")) || file.Equals(API.Parser.Parser.NormalizePath($"{LogDirectory}kavita1.log"))));
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region BackupFiles
|
||||
|
||||
// I don't think I can unit test this due to ZipFile.Create
|
||||
// [Fact]
|
||||
// public async Task BackupDatabase_ExpectAllFiles()
|
||||
// {
|
||||
// var filesystem = CreateFileSystem();
|
||||
// filesystem.AddFile($"{LogDirectory}kavita.log", new MockFileData(""));
|
||||
// filesystem.AddFile($"{ConfigDirectory}kavita.db", new MockFileData(""));
|
||||
// filesystem.AddFile($"{CoverImageDirectory}1.png", new MockFileData(""));
|
||||
// filesystem.AddFile($"{BookmarkDirectory}1.png", new MockFileData(""));
|
||||
// filesystem.AddFile($"{ConfigDirectory}appsettings.json", new MockFileData(""));
|
||||
// filesystem.AddFile($"{ThemesDirectory}joe.css", new MockFileData(""));
|
||||
//
|
||||
//
|
||||
// var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
|
||||
// var inMemorySettings = new Dictionary<string, string> {
|
||||
// {"Logging:File:Path", $"{LogDirectory}kavita.log"},
|
||||
// {"Logging:File:MaxRollingFiles", "0"},
|
||||
// };
|
||||
// IConfiguration configuration = new ConfigurationBuilder()
|
||||
// .AddInMemoryCollection(inMemorySettings)
|
||||
// .Build();
|
||||
//
|
||||
// var backupService = new BackupService(_logger, _unitOfWork, ds, configuration, _messageHub);
|
||||
//
|
||||
// await backupService.BackupDatabase();
|
||||
//
|
||||
//
|
||||
// var files = ds.GetFiles(BackupDirectory).ToList();
|
||||
// Assert.NotEmpty(files);
|
||||
// var zipFile = files.FirstOrDefault();
|
||||
// Assert.NotNull(zipFile);
|
||||
// using var zipArchive = ZipFile.OpenRead(zipFile);
|
||||
//
|
||||
// }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue