Server: refractoring upload/update video test utils

pull/61/head
Chocobozzz 2017-03-26 18:39:01 +02:00
parent f6e692f5ee
commit b4c5ac97ff
12 changed files with 158 additions and 146 deletions

View File

@ -50,12 +50,8 @@ describe('Test users API validators', function () {
usersUtils.createUser(server.url, server.accessToken, username, password, next)
},
function (next) {
const name = 'my super name for pod'
const category = 5
const description = 'my super description for pod'
const tags = [ 'tag' ]
const file = 'video_short2.webm'
videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next)
const videoAttributes = {}
videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
},
function (next) {
videosUtils.getVideosList(server.url, function (err, res) {

View File

@ -61,12 +61,8 @@ describe('Test video abuses API validators', function () {
},
// Upload some videos on each pods
function (next) {
const name = 'my super name for pod'
const category = 2
const description = 'my super description for pod'
const tags = [ 'tag' ]
const file = 'video_short2.webm'
videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next)
const videoAttributes = {}
videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
},
function (next) {
videosUtils.getVideosList(server.url, function (err, res) {

View File

@ -31,14 +31,12 @@ describe('Test advanced friends', function () {
}
function uploadVideo (podNumber, callback) {
const name = 'my super video'
const category = 5
const description = 'my super description'
const tags = [ 'tag1', 'tag2' ]
const fixture = 'video_short.webm'
const videoAttributes = {
tags: [ 'tag1', 'tag2' ]
}
const server = servers[podNumber - 1]
return videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback)
return videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback)
}
function getVideos (podNumber, callback) {

View File

@ -7,4 +7,5 @@ require('./friends-basic')
require('./users')
require('./single-pod')
require('./multiple-pods')
require('./requests')
require('./friends-advanced')

View File

@ -80,12 +80,13 @@ describe('Test multiple pods', function () {
series([
function (next) {
const name = 'my super name for pod 1'
const category = 5
const description = 'my super description for pod 1'
const tags = [ 'tag1p1', 'tag2p1' ]
const file = 'video_short1.webm'
videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 1',
description: 'my super description for pod 1',
tags: [ 'tag1p1', 'tag2p1' ],
fixture: 'video_short1.webm'
}
videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next)
},
function (next) {
setTimeout(next, 11000)
@ -146,12 +147,14 @@ describe('Test multiple pods', function () {
series([
function (next) {
const name = 'my super name for pod 2'
const category = 4
const description = 'my super description for pod 2'
const tags = [ 'tag1p2', 'tag2p2', 'tag3p2' ]
const file = 'video_short2.webm'
videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 2',
category: 4,
description: 'my super description for pod 2',
tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ],
fixture: 'video_short2.webm'
}
videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next)
},
function (next) {
setTimeout(next, 11000)
@ -212,20 +215,24 @@ describe('Test multiple pods', function () {
series([
function (next) {
const name = 'my super name for pod 3'
const category = 6
const description = 'my super description for pod 3'
const tags = [ 'tag1p3' ]
const file = 'video_short3.webm'
videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 3',
category: 6,
description: 'my super description for pod 3',
tags: [ 'tag1p3' ],
fixture: 'video_short3.webm'
}
videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next)
},
function (next) {
const name = 'my super name for pod 3-2'
const category = 7
const description = 'my super description for pod 3-2'
const tags = [ 'tag2p3', 'tag3p3', 'tag4p3' ]
const file = 'video_short.webm'
videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 3-2',
category: 7,
description: 'my super description for pod 3-2',
tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ],
fixture: 'video_short.webm'
}
videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next)
},
function (next) {
setTimeout(next, 22000)
@ -614,12 +621,13 @@ describe('Test multiple pods', function () {
it('Should update the video 3 by asking pod 3', function (done) {
this.timeout(15000)
const name = 'my super video updated'
const category = 10
const description = 'my super description updated'
const tags = [ 'tagup1', 'tagup2' ]
videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, name, category, description, tags, function (err) {
const attributes = {
name: 'my super video updated',
category: 10,
description: 'my super description updated',
tags: [ 'tagup1', 'tagup2' ]
}
videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes, function (err) {
if (err) throw err
setTimeout(done, 11000)

View File

@ -13,17 +13,16 @@ const serversUtils = require('../utils/servers')
const videosUtils = require('../utils/videos')
describe('Test requests stats', function () {
const requestSchedulerNames = [ 'requestScheduler', 'requestVideoQaduScheduler', 'requestVideoEventScheduler' ]
const path = '/api/v1/requests/stats'
let servers = []
function uploadVideo (server, callback) {
const name = 'my super video'
const category = 5
const description = 'my super description'
const tags = [ 'tag1', 'tag2' ]
const fixture = 'video_short.webm'
const videoAttributes = {
tags: [ 'tag1', 'tag2' ]
}
videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback)
videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback)
}
function getRequestsStats (server, callback) {
@ -64,9 +63,13 @@ describe('Test requests stats', function () {
getRequestsStats(server, function (err, res) {
if (err) throw err
const body = res.body
expect(body.remainingMilliSeconds).to.be.at.least(0)
expect(body.remainingMilliSeconds).to.be.at.most(10000)
const requestSchedulers = res.body
for (const requestSchedulerName of requestSchedulerNames) {
const requestScheduler = requestSchedulers[requestSchedulerName]
expect(requestScheduler.remainingMilliSeconds).to.be.at.least(0)
expect(requestScheduler.remainingMilliSeconds).to.be.at.most(10000)
}
done()
})
@ -86,8 +89,9 @@ describe('Test requests stats', function () {
getRequestsStats(server, function (err, res) {
if (err) throw err
const body = res.body
expect(body.totalRequests).to.equal(1)
const requestSchedulers = res.body
const requestScheduler = requestSchedulers.requestScheduler
expect(requestScheduler.totalRequests).to.equal(1)
done()
})

View File

@ -70,13 +70,12 @@ describe('Test a single pod', function () {
})
it('Should upload the video', function (done) {
this.timeout(5000)
const name = 'my super name'
const description = 'my super description'
const category = 2
const tags = [ 'tag1', 'tag2', 'tag3' ]
const file = 'video_short.webm'
videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, done)
const videoAttributes = {
name: 'my super name',
category: 2,
tags: [ 'tag1', 'tag2', 'tag3' ]
}
videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, done)
})
it('Should seed the uploaded video', function (done) {
@ -321,12 +320,15 @@ describe('Test a single pod', function () {
'video_short1.webm', 'video_short2.webm', 'video_short3.webm'
]
each(videos, function (video, callbackEach) {
const name = video + ' name'
const description = video + ' description'
const category = 2
const tags = [ 'tag1', 'tag2', 'tag3' ]
const videoAttributes = {
name: video + ' name',
description: video + ' description',
category: 2,
tags: [ 'tag1', 'tag2', 'tag3' ],
fixture: video
}
videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, video, callbackEach)
videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callbackEach)
}, done)
})
@ -543,12 +545,13 @@ describe('Test a single pod', function () {
})
it('Should update a video', function (done) {
const name = 'my super video updated'
const category = 4
const description = 'my super description updated'
const tags = [ 'tagup1', 'tagup2' ]
videosUtils.updateVideo(server.url, server.accessToken, videoId, name, category, description, tags, done)
const attributes = {
name: 'my super video updated',
category: 4,
description: 'my super description updated',
tags: [ 'tagup1', 'tagup2' ]
}
videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, done)
})
it('Should have the video updated', function (done) {
@ -586,9 +589,11 @@ describe('Test a single pod', function () {
})
it('Should update only the tags of a video', function (done) {
const tags = [ 'tag1', 'tag2', 'supertag' ]
const attributes = {
tags: [ 'tag1', 'tag2', 'supertag' ]
}
videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, null, tags, function (err) {
videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) {
if (err) throw err
videosUtils.getVideo(server.url, videoId, function (err, res) {
@ -613,9 +618,11 @@ describe('Test a single pod', function () {
})
it('Should update only the description of a video', function (done) {
const description = 'hello everybody'
const attributes = {
description: 'hello everybody'
}
videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, description, null, function (err) {
videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) {
if (err) throw err
videosUtils.getVideo(server.url, videoId, function (err, res) {

View File

@ -85,12 +85,8 @@ describe('Test users', function () {
it('Should not be able to upload a video', function (done) {
accessToken = 'mysupertoken'
const name = 'my super name'
const description = 'my super description'
const category = 5
const tags = [ 'tag1', 'tag2' ]
const video = 'video_short.webm'
videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 401, done)
const videoAttributes = {}
videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 401, done)
})
it('Should not be able to make friends', function (done) {
@ -113,12 +109,8 @@ describe('Test users', function () {
})
it('Should upload the video with the correct token', function (done) {
const name = 'my super name'
const category = 5
const description = 'my super description'
const tags = [ 'tag1', 'tag2' ]
const video = 'video_short.webm'
videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, function (err, res) {
const videoAttributes = {}
videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, function (err, res) {
if (err) throw err
videosUtils.getVideosList(server.url, function (err, res) {
@ -134,12 +126,8 @@ describe('Test users', function () {
})
it('Should upload the video again with the correct token', function (done) {
const name = 'my super name 2'
const category = 5
const description = 'my super description 2'
const tags = [ 'tag1' ]
const video = 'video_short.webm'
videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, done)
const videoAttributes = {}
videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, done)
})
it('Should retrieve a video rating', function (done) {
@ -230,12 +218,8 @@ describe('Test users', function () {
it('Should be able to upload a video with this user', function (done) {
this.timeout(5000)
const name = 'my super name'
const category = 5
const description = 'my super description'
const tags = [ 'tag1', 'tag2', 'tag3' ]
const file = 'video_short.webm'
videosUtils.uploadVideo(server.url, accessTokenUser, name, category, description, tags, file, done)
const videoAttributes = {}
videosUtils.uploadVideo(server.url, accessTokenUser, videoAttributes, done)
})
it('Should list all the users', function (done) {

View File

@ -45,20 +45,18 @@ describe('Test video abuses', function () {
},
// Upload some videos on each pods
function (next) {
const name = 'my super name for pod 1'
const category = 5
const description = 'my super description for pod 1'
const tags = [ 'tag' ]
const file = 'video_short2.webm'
videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 1',
description: 'my super description for pod 1'
}
videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next)
},
function (next) {
const name = 'my super name for pod 2'
const category = 5
const description = 'my super description for pod 2'
const tags = [ 'tag' ]
const file = 'video_short2.webm'
videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next)
const videoAttributes = {
name: 'my super name for pod 2',
description: 'my super description for pod 2'
}
videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next)
},
// Wait videos propagation
function (next) {

View File

@ -200,15 +200,16 @@ function exitServers (servers, callback) {
function upload (servers, numServer, callback) {
if (!callback) callback = function () {}
const name = Date.now() + ' name'
const category = 4
const description = Date.now() + ' description'
const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
const file = 'video_short1.webm'
console.log('Uploading video to server ' + numServer)
videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, name, category, description, tags, file, callback)
const videoAttributes = {
name: Date.now() + ' name',
category: 4,
description: Date.now() + ' description',
tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ],
fixture: 'video_short1.webm'
}
videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, videoAttributes, callback)
}
function update (servers, numServer, callback) {
@ -221,13 +222,15 @@ function update (servers, numServer, callback) {
if (videos.length === 0) return callback()
const toUpdate = videos[getRandomInt(0, videos.length)].id
const name = Date.now() + ' name'
const description = Date.now() + ' description'
const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
const attributes = {
name: Date.now() + ' name',
description: Date.now() + ' description',
tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
}
console.log('Updating video of server ' + numServer)
videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, name, description, tags, callback)
videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, attributes, callback)
})
}

View File

@ -49,10 +49,17 @@ function list (val) {
return val.split(',')
}
function upload (url, accessToken, name, category, description, tags, file) {
function upload (url, accessToken, name, category, description, tags, fixture) {
console.log('Uploading %s video...', program.name)
utils.uploadVideo(url, accessToken, name, category, description, tags, file, function (err) {
const videoAttributes = {
name,
category,
description,
tags,
fixture
}
utils.uploadVideo(url, accessToken, videoAttributes, function (err) {
if (err) throw err
console.log('Video uploaded.')

View File

@ -193,7 +193,7 @@ function testVideoImage (url, videoName, imagePath, callback) {
}
}
function uploadVideo (url, accessToken, name, category, description, tags, fixture, specialStatus, end) {
function uploadVideo (url, accessToken, videoAttributesArg, specialStatus, end) {
if (!end) {
end = specialStatus
specialStatus = 204
@ -201,23 +201,33 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu
const path = '/api/v1/videos'
// Default attributes
let attributes = {
name: 'my super video',
category: 5,
description: 'my super description',
tags: [ 'tag' ],
fixture: 'video_short.webm'
}
attributes = Object.assign(attributes, videoAttributesArg)
const req = request(url)
.post(path)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.field('name', name)
.field('category', category)
.field('description', description)
.field('name', attributes.name)
.field('category', attributes.category)
.field('description', attributes.description)
for (let i = 0; i < tags.length; i++) {
req.field('tags[' + i + ']', tags[i])
for (let i = 0; i < attributes.tags.length; i++) {
req.field('tags[' + i + ']', attributes.tags[i])
}
let filepath = ''
if (pathUtils.isAbsolute(fixture)) {
filepath = fixture
if (pathUtils.isAbsolute(attributes.fixture)) {
filepath = attributes.fixture
} else {
filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', fixture)
filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', attributes.fixture)
}
req.attach('videofile', filepath)
@ -225,7 +235,7 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu
.end(end)
}
function updateVideo (url, accessToken, id, name, category, description, tags, specialStatus, end) {
function updateVideo (url, accessToken, id, attributes, specialStatus, end) {
if (!end) {
end = specialStatus
specialStatus = 204
@ -238,13 +248,13 @@ function updateVideo (url, accessToken, id, name, category, description, tags, s
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
if (name) req.field('name', name)
if (category) req.field('category', category)
if (description) req.field('description', description)
if (attributes.name) req.field('name', attributes.name)
if (attributes.category) req.field('category', attributes.category)
if (attributes.description) req.field('description', attributes.description)
if (tags) {
for (let i = 0; i < tags.length; i++) {
req.field('tags[' + i + ']', tags[i])
if (attributes.tags) {
for (let i = 0; i < attributes.tags.length; i++) {
req.field('tags[' + i + ']', attributes.tags[i])
}
}