Added test + small fixes.

This commit is contained in:
Tomas Groth 2015-03-18 22:04:30 +00:00
parent 7e406e7005
commit f8084059ba
3 changed files with 31 additions and 5 deletions

View File

@ -27,6 +27,7 @@ from distutils.version import LooseVersion
import logging
import os
import threading
import sys
from PyQt4 import QtGui
@ -62,7 +63,8 @@ if VLC_AVAILABLE:
if LooseVersion(VERSION.split()[0]) < LooseVersion('1.1.0'):
VLC_AVAILABLE = False
log.debug('VLC could not be loaded, because the vlc version is too old: %s' % VERSION)
if VLC_AVAILABLE and is_linux():
# On linux we need to initialise X threads, but not when running tests.
if VLC_AVAILABLE and is_linux() and 'nose' not in sys.argv[0]:
import ctypes
try:
x11 = ctypes.cdll.LoadLibrary('libX11.so')

View File

@ -245,8 +245,8 @@ class PresentationMediaItem(MediaManagerItem):
doc = self.controllers[cidx].add_document(filepath)
if clean_for_update:
thumb_path = doc.get_thumbnail_path(1, True)
if not thumb_path or (os.path.exists(filepath)
and os.path.getmtime(thumb_path) < os.path.getmtime(filepath)):
if not thumb_path or not os.path.exists(filepath) or os.path.getmtime(
thumb_path) < os.path.getmtime(filepath):
doc.presentation_deleted()
else:
doc.presentation_deleted()

View File

@ -87,7 +87,7 @@ class TestMediaItem(TestCase, TestMixin):
def clean_up_thumbnails_test(self):
"""
Test that the clean_up_thumbnails method works as expected.
Test that the clean_up_thumbnails method works as expected when files exists.
"""
# GIVEN: A mocked controller, and mocked os.path.getmtime
mocked_controller = MagicMock()
@ -98,8 +98,10 @@ class TestMediaItem(TestCase, TestMixin):
'Mocked': mocked_controller
}
presentation_file = 'file.tmp'
with patch('openlp.plugins.presentations.lib.mediaitem.os.path.getmtime') as mocked_getmtime:
with patch('openlp.plugins.presentations.lib.mediaitem.os.path.getmtime') as mocked_getmtime, \
patch('openlp.plugins.presentations.lib.mediaitem.os.path.exists') as mocked_exists:
mocked_getmtime.side_effect = [100, 200]
mocked_exists.return_value = True
# WHEN: calling clean_up_thumbnails
self.media_item.clean_up_thumbnails(presentation_file, True)
@ -107,3 +109,25 @@ class TestMediaItem(TestCase, TestMixin):
# THEN: doc.presentation_deleted should have been called since the thumbnails mtime will be greater than
# the presentation_file's mtime.
mocked_doc.assert_has_calls([call.get_thumbnail_path(1, True), call.presentation_deleted()], True)
def clean_up_thumbnails_missing_file_test(self):
"""
Test that the clean_up_thumbnails method works as expected when file is missing.
"""
# GIVEN: A mocked controller, and mocked os.path.exists
mocked_controller = MagicMock()
mocked_doc = MagicMock()
mocked_controller.add_document.return_value = mocked_doc
mocked_controller.supports = ['tmp']
self.media_item.controllers = {
'Mocked': mocked_controller
}
presentation_file = 'file.tmp'
with patch('openlp.plugins.presentations.lib.mediaitem.os.path.exists') as mocked_exists:
mocked_exists.return_value = False
# WHEN: calling clean_up_thumbnails
self.media_item.clean_up_thumbnails(presentation_file, True)
# THEN: doc.presentation_deleted should have been called since the presentation file did not exists.
mocked_doc.assert_has_calls([call.get_thumbnail_path(1, True), call.presentation_deleted()], True)