From c4a751d36646937bd302441a1c46726d7c9c2efd Mon Sep 17 00:00:00 2001 From: Christophe-Marie Duquesne Date: Fri, 19 Jul 2013 23:48:35 +0200 Subject: [PATCH] adding tests for the video module --- tests/test_video.py | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/test_video.py diff --git a/tests/test_video.py b/tests/test_video.py new file mode 100644 index 0000000..065059c --- /dev/null +++ b/tests/test_video.py @@ -0,0 +1,56 @@ +# -*- coding:utf-8 -*- + +from __future__ import division + +import os +import filecmp +import pytest + +from sigal import init_logging +from sigal.video import vid_size, generate_video + +CURRENT_DIR = os.path.dirname(__file__) +TEST_VIDEO = 'stallman-software-freedom-day-low.ogv' +SRCFILE = os.path.join(CURRENT_DIR, 'sample', 'pictures', 'video', TEST_VIDEO) + + + +def test_generate_video_fit_height(tmpdir): + """largest fitting dimension is height""" + + base, ext = os.path.splitext(TEST_VIDEO) + dstfile = str(tmpdir.join(base + '.webm')) + generate_video(SRCFILE, dstfile, (50, 100)) + + size_src = vid_size(SRCFILE) + size_dst = vid_size(dstfile) + + assert size_dst[0] == 50 + # less than 2% error on ratio + assert abs(size_dst[0]/size_dst[1] - size_src[0]/size_src[1]) < 2e-2 + +def test_generate_video_fit_width(tmpdir): + """largest fitting dimension is width""" + + base, ext = os.path.splitext(TEST_VIDEO) + dstfile = str(tmpdir.join(base + '.webm')) + generate_video(SRCFILE, dstfile, (100, 50)) + + size_src = vid_size(SRCFILE) + size_dst = vid_size(dstfile) + + assert size_dst[1] == 50 + # less than 2% error on ratio + assert abs(size_dst[0]/size_dst[1] - size_src[0]/size_src[1]) < 2e-2 + +def test_generate_video_dont_enlarge(tmpdir): + """video dimensions should not be enlarged""" + + base, ext = os.path.splitext(TEST_VIDEO) + dstfile = str(tmpdir.join(base + '.webm')) + generate_video(SRCFILE, dstfile, (1000, 1000)) + + size_src = vid_size(SRCFILE) + size_dst = vid_size(dstfile) + + assert size_src == size_dst