def upload(request): ticket = request.session.get('vimeo_ticket', None) form = VideoForm(request.POST or None) if ticket and request.method == 'POST' and form.is_valid(): # Verify that the filesize from the client matches what vimeo received. # Some browsers don't provide this number, so we can't really verify. filesize = form.cleaned_data['filesize'] if filesize and not vimeo.verify_chunks(ticket['id'], filesize): return upload_error(request) ticket = vimeo.complete_upload(ticket['id'], form.cleaned_data['filename']) # Create video and schedule it for processing. video = form.save(commit=False) video.user = request.user video.vimeo_id = ticket['video_id'] video.save() tasks.process_video.delay(video.id) del request.session['vimeo_ticket'] return redirect('flicks.videos.upload_complete') # Generate an upload token if one doesn't exist or isn't valid. if not ticket or not vimeo.is_ticket_valid(ticket['id']): ticket = vimeo.get_new_ticket() request.session['vimeo_ticket'] = ticket return render(request, 'videos/upload.html', { 'ticket': ticket, 'form': form })
def test_verify_chunks_no_match(self, _ticket_request): """ If the size given by Vimeo does not match the expected size, return False. """ _ticket_request.return_value = {'ticket': {'chunks': {'chunk': { 'size': '3' }}}} eq_(vimeo.verify_chunks('id', 4), False)
def test_verify_chunks(self, _ticket_request): """If the size given by Vimeo matches the expected size, return True.""" _ticket_request.return_value = { 'ticket': { 'chunks': { 'chunk': { 'size': '4' } } } } eq_(vimeo.verify_chunks('id', 4), True)
def test_verify_chunks_no_match(self, _ticket_request): """ If the size given by Vimeo does not match the expected size, return False. """ _ticket_request.return_value = { 'ticket': { 'chunks': { 'chunk': { 'size': '3' } } } } eq_(vimeo.verify_chunks('id', 4), False)
def test_verify_chunks(self, _ticket_request): """If the size given by Vimeo matches the expected size, return True.""" _ticket_request.return_value = {'ticket': {'chunks': {'chunk': { 'size': '4' }}}} eq_(vimeo.verify_chunks('id', 4), True)