← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol/openlp/last-version-fix into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol/openlp/last-version-fix into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~googol/openlp/last-version-fix/+merge/156607

Hello,

Python datetime objects are not converted by PyQt to Qt QDateTime objects. This script shows the error: http://pastebin.com/qbpKFknx (Just run the script twice.)

- Fixed python datetime object <-> QDateTime object 'conversion'
- Added three tests
-- 
https://code.launchpad.net/~googol/openlp/last-version-fix/+merge/156607
Your team OpenLP Core is requested to review the proposed merge of lp:~googol/openlp/last-version-fix into lp:openlp.
=== modified file 'openlp/core/lib/settings.py'
--- openlp/core/lib/settings.py	2013-03-28 20:15:59 +0000
+++ openlp/core/lib/settings.py	2013-04-02 15:15:44 +0000
@@ -126,7 +126,7 @@
         u'general/has run wizard': False,
         u'general/language': u'[en]',
         # This defaults to yesterday in order to force the update check to run when you've never run it before.
-        u'general/last version test': datetime.datetime.now().date() - datetime.timedelta(days=1),
+        u'general/last version test': QtCore.QDate.currentDate().addDays(-1),
         u'general/loop delay': 5,
         u'general/recent files': [],
         u'general/save prompt': False,

=== modified file 'openlp/core/utils/__init__.py'
--- openlp/core/utils/__init__.py	2013-03-04 10:55:02 +0000
+++ openlp/core/utils/__init__.py	2013-04-02 15:15:44 +0000
@@ -29,7 +29,6 @@
 """
 The :mod:`openlp.core.utils` module provides the utility libraries for OpenLP.
 """
-from datetime import datetime
 from distutils.version import LooseVersion
 import logging
 import locale
@@ -184,7 +183,7 @@
     settings = Settings()
     settings.beginGroup(u'general')
     last_test = settings.value(u'last version test')
-    this_test = datetime.now().date()
+    this_test = QtCore.QDate.currentDate()
     settings.setValue(u'last version test', this_test)
     settings.endGroup()
     # Tell the main window whether there will ever be data to display
@@ -244,8 +243,7 @@
     global IMAGES_FILTER
     if not IMAGES_FILTER:
         log.debug(u'Generating images filter.')
-        formats = [unicode(fmt)
-            for fmt in QtGui.QImageReader.supportedImageFormats()]
+        formats == QtGui.QImageReader.supportedImageFormats()
         visible_formats = u'(*.%s)' % u'; *.'.join(formats)
         actual_formats = u'(*.%s)' % u' *.'.join(formats)
         IMAGES_FILTER = u'%s %s %s' % (translate('OpenLP', 'Image Files'), visible_formats, actual_formats)

=== modified file 'tests/functional/openlp_core_utils/test_utils.py'
--- tests/functional/openlp_core_utils/test_utils.py	2012-12-07 21:38:02 +0000
+++ tests/functional/openlp_core_utils/test_utils.py	2013-04-02 15:15:44 +0000
@@ -5,7 +5,7 @@
 
 from mock import patch
 
-from openlp.core.utils import get_filesystem_encoding, _get_frozen_path
+from openlp.core.utils import get_filesystem_encoding, _get_frozen_path, clean_filename, split_filename
 
 class TestUtils(TestCase):
     """
@@ -56,3 +56,50 @@
             # THEN: The frozen parameter is returned
             assert _get_frozen_path(u'frozen', u'not frozen') == u'frozen', u'Should return "frozen"'
 
+    def split_filename_with_file_path_test(self):
+        """
+        Test the split_filename() function with a path to a file
+        """
+        # GIVEN: A path to a file.
+        file_path = u'/home/user/myfile.txt'
+        wanted_result = (u'/home/user', u'myfile.txt')
+        with patch(u'openlp.core.utils.os.path.isfile') as mocked_is_file:
+            mocked_is_file.return_value = True
+
+            # WHEN: Split the file name.
+            result = split_filename(file_path)
+
+            # THEN: A tuple should be returned.
+            assert result == wanted_result, u'A tuple with the directory and file should have been returned.'
+
+    def split_filename_with_dir_path_test(self):
+        """
+        Test the split_filename() function with a path to a directory.
+        """
+        # GIVEN: A path to a dir.
+        file_path = u'/home/user/mydir'
+        wanted_result = (u'/home/user/mydir', u'')
+        with patch(u'openlp.core.utils.os.path.isfile') as mocked_is_file:
+            mocked_is_file.return_value = False
+
+            # WHEN: Split the file name.
+            result = split_filename(file_path)
+
+            # THEN: A tuple should be returned.
+            assert result == wanted_result, \
+                u'A two-entry tuple with the directory and file (empty) should have been returned.'
+
+
+    def clean_filename_test(self):
+        """
+        Test the clean_filename() function
+        """
+        # GIVEN: A invalid file name and the valid file name.
+        invalid_name = u'A_file_with_invalid_characters_[\\/:\*\?"<>\|\+\[\]%].py'
+        wanted_name = u'A_file_with_invalid_characters______________________.py'
+
+        # WHEN: Clean the name.
+        result = clean_filename(invalid_name)
+
+        # THEN: The file name should be cleaned.
+        assert result == wanted_name, u'The file name should not contain any special characters.'


Follow ups