Support studio transcoding in peertube runner

This commit is contained in:
Chocobozzz
2023-05-04 15:29:34 +02:00
committed by Chocobozzz
parent 6a49056026
commit 5e47f6ab98
67 changed files with 1423 additions and 262 deletions

View File

@@ -130,6 +130,22 @@ function checkBadSortPagination (url: string, path: string, token?: string, quer
})
}
// ---------------------------------------------------------------------------
async function checkVideoDuration (server: PeerTubeServer, videoUUID: string, duration: number) {
const video = await server.videos.get({ id: videoUUID })
expect(video.duration).to.be.approximately(duration, 1)
for (const file of video.files) {
const metadata = await server.videos.getFileMetadata({ url: file.metadataUrl })
for (const stream of metadata.streams) {
expect(Math.round(stream.duration)).to.be.approximately(duration, 1)
}
}
}
export {
dateIsValid,
testImageSize,
@@ -142,5 +158,6 @@ export {
checkBadStartPagination,
checkBadCountPagination,
checkBadSortPagination,
checkVideoDuration,
expectLogContain
}

View File

@@ -2,9 +2,11 @@
import { expect } from 'chai'
import { pathExists, readdir } from 'fs-extra'
import { homedir } from 'os'
import { join } from 'path'
import { PeerTubeServer } from '@shared/server-commands'
async function checkTmpIsEmpty (server: PeerTubeServer) {
export async function checkTmpIsEmpty (server: PeerTubeServer) {
await checkDirectoryIsEmpty(server, 'tmp', [ 'plugins-global.css', 'hls', 'resumable-uploads' ])
if (await pathExists(server.getDirectoryPath('tmp/hls'))) {
@@ -12,11 +14,11 @@ async function checkTmpIsEmpty (server: PeerTubeServer) {
}
}
async function checkPersistentTmpIsEmpty (server: PeerTubeServer) {
export async function checkPersistentTmpIsEmpty (server: PeerTubeServer) {
await checkDirectoryIsEmpty(server, 'tmp-persistent')
}
async function checkDirectoryIsEmpty (server: PeerTubeServer, directory: string, exceptions: string[] = []) {
export async function checkDirectoryIsEmpty (server: PeerTubeServer, directory: string, exceptions: string[] = []) {
const directoryPath = server.getDirectoryPath(directory)
const directoryExists = await pathExists(directoryPath)
@@ -28,8 +30,13 @@ async function checkDirectoryIsEmpty (server: PeerTubeServer, directory: string,
expect(filtered).to.have.lengthOf(0)
}
export {
checkTmpIsEmpty,
checkPersistentTmpIsEmpty,
checkDirectoryIsEmpty
export async function checkPeerTubeRunnerCacheIsEmpty () {
const directoryPath = join(homedir(), '.cache', 'peertube-runner-nodejs', 'test', 'transcoding')
const directoryExists = await pathExists(directoryPath)
expect(directoryExists).to.be.true
const files = await readdir(directoryPath)
expect(files).to.have.lengthOf(0)
}