From 8a44484aee1bb56a0e777cb90a23160f337f64f0 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 26 Sep 2009 00:06:54 +0100 Subject: [PATCH] Fix None testing and general cleanups --- openlp.pyw | 5 +- openlp/core/lib/__init__.py | 1 + openlp/core/lib/pluginconfig.py | 18 +- openlp/core/lib/renderer.py | 2 - openlp/core/lib/serviceitem.py | 4 +- openlp/core/lib/settingstab.py | 2 +- openlp/core/test/test_render.py | 40 +++-- openlp/core/test/test_render_theme.py | 108 ++++++------ openlp/core/theme/test/test_theme.py | 82 ++++----- openlp/core/ui/amendthemeform.py | 5 +- openlp/core/ui/servicemanager.py | 2 - openlp/core/ui/slidecontroller.py | 4 +- openlp/core/ui/test/test_service_manager.py | 3 +- openlp/migration/display.py | 4 +- openlp/migration/migratesongs.py | 1 - .../plugins/bibles/forms/bibleimportform.py | 21 ++- openlp/plugins/bibles/lib/bibleDBimpl.py | 8 +- openlp/plugins/bibles/lib/bibleHTTPimpl.py | 19 +- openlp/plugins/bibles/lib/bibleOSISimpl.py | 4 +- openlp/plugins/bibles/lib/manager.py | 26 +-- openlp/plugins/bibles/lib/mediaitem.py | 12 +- .../plugins/bibles/test/test_bibleManager.py | 3 +- .../bibles/test/test_bibleManagerAPI.py | 3 +- .../bibles/test/test_bibleManagerCSV.py | 3 +- .../bibles/test/test_bibleManagerOSIS.py | 3 +- .../presentations/lib/impresscontroller.py | 2 +- .../presentations/lib/powerpointcontroller.py | 17 +- openlp/plugins/songs/lib/manager.py | 2 +- openlp/plugins/songs/lib/mediaitem.py | 4 +- openlp/plugins/songs/lib/songxml.py | 165 +++++++++--------- 30 files changed, 292 insertions(+), 281 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 78c1c81f3..2132c99fd 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -24,9 +24,10 @@ ############################################################################### import sys -import logging, logging.handlers -from optparse import OptionParser +import logging +import logging.handlers +from optparse import OptionParser from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, str_to_bool diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 642e30c16..e8aab6bfb 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -28,6 +28,7 @@ OpenLP work. """ import types + from PyQt4 import QtCore, QtGui def translate(context, text): diff --git a/openlp/core/lib/pluginconfig.py b/openlp/core/lib/pluginconfig.py index 4102ebeb7..7aed81f78 100644 --- a/openlp/core/lib/pluginconfig.py +++ b/openlp/core/lib/pluginconfig.py @@ -107,17 +107,17 @@ class PluginConfig(object): files = os.listdir(self.get_data_path()) except: return [] - if suffix != None: + if suffix is not None: return_files = [] - for f in files: - if f.find(u'.') != -1: - nme = f.split(u'.') - bname = nme[0] - sfx = nme[1].lower() - sfx = sfx.lower() + for file in files: + if file.find(u'.') != -1: + filename = file.split(u'.') + #bname = nme[0] + filesuffix = filename[1].lower() + filesuffix = filesuffix.lower() # only load files with the correct suffix - if suffix.find(sfx) > -1 : - return_files.append(f) + if suffix.find(filesuffix) > -1 : + return_files.append(file) return return_files else: # no filtering required diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index a3b5b232c..4f209338f 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -151,7 +151,6 @@ class Renderer(object): The footer of the slide. """ log.debug(u'format_slide - Start') - verses = [] words = words.replace(u'\r\n', u'\n') verses_text = words.split(u'\n') text = [] @@ -174,7 +173,6 @@ class Renderer(object): split_pages = [] page = [] split_lines = [] - count = 0 for line in text: #Must be a blank line so keep it. if len(line) == 0: diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index e5a5cde66..09be2c4f7 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -88,7 +88,7 @@ class ServiceItem(object): self.frames = [] if self.service_item_type == ServiceType.Text: log.debug(u'Formatting slides') - if self.theme == None: + if self.theme is None: self.RenderManager.set_override_theme(None) else: self.RenderManager.set_override_theme(self.theme) @@ -114,7 +114,7 @@ class ServiceItem(object): def render_individual(self, row): log.debug(u'render individual') - if self.theme == None: + if self.theme is None: self.RenderManager.set_override_theme(None) else: self.RenderManager.set_override_theme(self.theme) diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index 0bd0b0074..ef46ba781 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -48,7 +48,7 @@ class SettingsTab(QtGui.QWidget): self.setupUi() self.retranslateUi() self.initialise() - if section == None: + if section is None: self.config = PluginConfig(title) else: self.config = PluginConfig(section) diff --git a/openlp/core/test/test_render.py b/openlp/core/test/test_render.py index 2ff8990ef..36052a6e9 100644 --- a/openlp/core/test/test_render.py +++ b/openlp/core/test/test_render.py @@ -17,12 +17,13 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ import sys -import os, os.path +import os +import os.path from PyQt4 import QtGui, QtCore from openlp.core.theme import Theme -from openlp.core import Renderer +from openlp.core.lib import Renderer mypath = os.path.split(os.path.abspath(__file__))[0] sys.path.insert(0, (os.path.join(mypath, '..', '..', '..'))) @@ -104,8 +105,8 @@ class TestRender_base: frame = TstFrame(size = self.size) self.frame = frame self.paintdest = frame.GetPixmap() - self.r=Renderer() - self.r.set_paint_dest(self.paintdest) + self.renderer = Renderer() + self.renderer.set_paint_dest(self.paintdest) self.expected_answer = "Don't know yet" self.answer = None print "--------------- Setup Done -------------" @@ -119,24 +120,27 @@ class TestRender(TestRender_base): def setup_method(self, method): TestRender_base.setup_method(self, method) - self.r.set_debug(1) + self.renderer.set_debug(1) themefile = os.path.abspath(u'data_for_tests/render_theme.xml') - self.r.set_theme(Theme(themefile)) # set default theme - self.r._render_background() - self.r.set_text_rectangle(QtCore.QRect(0,0, self.size.width()-1, - self.size.height()-1)) + self.renderer.set_theme(Theme(themefile)) # set default theme + self.renderer._render_background() + self.renderer.set_text_rectangle(QtCore.QRect( + 0,0, self.size.width()-1, self.size.height()-1)) self.msg = None def test_easy(self): - answer = self.r._render_single_line(u'Test line', tlcorner = (0,100)) + answer = self.renderer._render_single_line( + u'Test line', tlcorner = (0,100)) assert(answer == (219,163)) + def test_longer(self): - answer = self.r._render_single_line( + answer = self.renderer._render_single_line( u'Test line with more words than fit on one line', tlcorner = (10,10)) assert(answer == (753,136)) + def test_even_longer(self): - answer = self.r._render_single_line( + answer = self.renderer._render_single_line( u'Test line with more words than fit on either one or two lines', tlcorner = (10,10)) assert(answer == (753,199)) @@ -146,7 +150,7 @@ class TestRender(TestRender_base): lines.append(u'Line Two') lines.append(u'Line Three and should be long enough to wrap') lines.append(u'Line Four and should be long enough to wrap also') - answer = self.r._render_lines(lines) + answer = self.renderer._render_lines(lines) assert(answer == QtCore.QRect(0,0,741,378)) def test_set_words_openlp(self): @@ -161,7 +165,7 @@ Verse 3: Line 1 Line 2 Line 3""" expected_answer = ["Verse 1: Line 1\nLine 2","Verse 2: Line 1\nLine 2","Verse 3: Line 1\nLine 2\nLine 3"] - answer = self.r.set_words_openlp(words) + answer = self.renderer.set_words_openlp(words) assert(answer == expected_answer) def test_render_screens(self): @@ -175,14 +179,14 @@ Line 2 Verse 3: Line 1 Line 2 Line 3""" - verses = self.r.set_words_openlp(words) + verses = self.renderer.set_words_openlp(words) expected_answer = ["Verse 1: Line 1\nLine 2","Verse 2: Line 1\nLine 2","Verse 3: Line 1\nLine 2\nLine 3"] assert(verses == expected_answer) expected_answer = [QtCore.QRect(0,0,397,126), QtCore.QRect(0,0,397,126), QtCore.QRect(0,0,397,189)] for v in range(len(verses)): - answer=self.r.render_screen(v) + answer=self.renderer.render_screen(v) # print v, answer.x(), answer.y(), answer.width(), answer.height() assert(answer == expected_answer[v]) @@ -194,11 +198,11 @@ Line 3""" if i == 51: # make an extra long line on line 51 to test wrapping extra = "Some more words to make it wrap around don't you know until it wraps so many times we don't know what to do" lines.append(u'Line %d %s' % (i, extra)) - result = self.r.split_set_of_lines(lines) + result = self.renderer.split_set_of_lines(lines) print "results---------------__", result for i in range(len(result)): self.setup_method(None) - answer = self.r._render_lines(result[i]) + answer = self.renderer._render_lines(result[i]) print answer self.write_to_file(self.frame.GetPixmap(), "split_test_%03d"% i) print number, i, answer.x(), answer.y(), answer.width(), \ diff --git a/openlp/core/test/test_render_theme.py b/openlp/core/test/test_render_theme.py index 54f4e6068..05f692393 100644 --- a/openlp/core/test/test_render_theme.py +++ b/openlp/core/test/test_render_theme.py @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ + import sys import os @@ -33,7 +34,7 @@ def compare_images(goldenim, testim, threshold=0.01): # how close are they? Calculated the sum of absolute differences in # each channel of each pixel and divide by the number of pixels in the image # if this sum is < threshold, the images are deemed to be "close enough" - sad=0; + sad = 0; for x in range(goldenim.width()): for y in range(goldenim.height()): p1=goldenim.pixel(x,y) @@ -44,9 +45,7 @@ def compare_images(goldenim, testim, threshold=0.01): sad /= float(goldenim.width()*goldenim.height()) if (sad < threshold): return 1 - return 0 - class TestRenderTheme(TestRender_base): # {{{ Basics @@ -58,15 +57,15 @@ class TestRenderTheme(TestRender_base): TestRender_base.setup_method(self, method) print "Theme setup", method # print "setup theme" - self.r.set_theme(Theme(u'blank_theme.xml')) # set "blank" theme - self.r.set_text_rectangle(QtCore.QRect(0,0, self.size.width(), + self.renderer.set_theme(Theme(u'blank_theme.xml')) # set "blank" theme + self.renderer.set_text_rectangle(QtCore.QRect(0,0, self.size.width(), self.size.height())) words = """How sweet the name of Jesus sounds In a believer's ear! It soothes his sorrows, heals his wounds, And drives away his fear. """ - verses = self.r.set_words_openlp(words) + verses = self.renderer.set_words_openlp(words) # usually the same self.expected_answer = QtCore.QRect(0, 0, 559, 342) self.msg = None @@ -75,9 +74,9 @@ And drives away his fear. def teardown_method(self, method): print "============ teardown =============", method, self.bmpname - if self.bmpname != None: + if self.bmpname is not None: assert (self.compare_DC_to_file(self.bmpname)) - if self.expected_answer != None: # result=None => No result to check + if self.expected_answer is not None: # result=None => Nothing to check assert self.expected_answer == self.answer print "============ teardown done =========" @@ -104,9 +103,9 @@ And drives away his fear. return False def test_theme_basic(self): - self.answer = self.r.render_screen(0) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() - print self.r._theme.FontProportion + print self.renderer._theme.FontProportion print self.answer, self.expected_answer, \ self.answer == self.expected_answer # self.msg=self.bmpname @@ -116,20 +115,20 @@ And drives away his fear. # {{{ Gradients def test_gradient_h(self): # normally we wouldn't hack with these directly! - self.r._theme.BackgroundType = 1 - self.r._theme.BackgroundParameter1 = QtGui.QColor(255,0,0) - self.r._theme.BackgroundParameter2 = QtGui.QColor(255,255,0) - self.r._theme.BackgroundParameter3 = 1 - self.answer = self.r.render_screen(0) + self.renderer._theme.BackgroundType = 1 + self.renderer._theme.BackgroundParameter1 = QtGui.QColor(255,0,0) + self.renderer._theme.BackgroundParameter2 = QtGui.QColor(255,255,0) + self.renderer._theme.BackgroundParameter3 = 1 + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() def test_gradient_v(self): # normally we wouldn't hack with these directly! - self.r._theme.BackgroundType = 1 - self.r._theme.BackgroundParameter1 = QtGui.QColor(255,0,0) - self.r._theme.BackgroundParameter2 = QtGui.QColor(255,255,0) - self.r._theme.BackgroundParameter3 = 0 - self.answer = self.r.render_screen(0) + self.renderer._theme.BackgroundType = 1 + self.renderer._theme.BackgroundParameter1 = QtGui.QColor(255,0,0) + self.renderer._theme.BackgroundParameter2 = QtGui.QColor(255,255,0) + self.renderer._theme.BackgroundParameter3 = 0 + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() # }}} @@ -142,9 +141,9 @@ And drives away his fear. t.BackgroundParameter2 = QtGui.QColor(0,0,64) t.BackgroundParameter3 = 0 t.Name = "stretch y" - self.r.set_theme(t) + self.renderer.set_theme(t) print "render" - self.answer = self.r.render_screen(0) + self.answer = self.renderer.render_screen(0) print "whoami" self.bmpname = whoami() print "fone" @@ -156,8 +155,8 @@ And drives away his fear. t.BackgroundParameter2 = QtGui.QColor(0,0,64) t.BackgroundParameter3 = 0 t.Name = "shrink y" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() def test_bg_stretch_x(self): @@ -169,8 +168,8 @@ And drives away his fear. t.BackgroundParameter3 = 0 t.VerticalAlign = 2 t.Name = "stretch x" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 129, 559, 342) self.bmpname = whoami() @@ -183,9 +182,9 @@ And drives away his fear. t.BackgroundParameter3 = 0 t.VerticalAlign = 2 t.Name = "shrink x" - self.r.set_theme(t) + self.renderer.set_theme(t) self.expected_answer = QtCore.QRect(0, 129, 559, 342) - self.answer = self.r.render_screen(0) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() # }}} @@ -196,8 +195,8 @@ And drives away his fear. t.BackgroundParameter1 = QtGui.QColor(0,0,64) t.VerticalAlign = 0 t.Name = "valign top" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() def test_theme_vertical_align_bot(self): @@ -206,8 +205,8 @@ And drives away his fear. t.BackgroundParameter1 = QtGui.QColor(0,0,64) t.VerticalAlign = 1 t.Name = "valign bot" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 257, 559, 342) self.bmpname = whoami() @@ -217,8 +216,8 @@ And drives away his fear. t.BackgroundParameter1 = QtGui.QColor(0,0,64) t.VerticalAlign = 2 t.Name = "valign cen" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 129, 559, 342) self.bmpname = whoami() # }}} @@ -231,8 +230,8 @@ And drives away his fear. t.VerticalAlign = 0 t.HorizontalAlign = 0 t.Name = "halign left" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() def test_theme_horizontal_align_right(self): @@ -242,9 +241,9 @@ And drives away his fear. t.VerticalAlign = 0 t.HorizontalAlign = 1 t.Name = "halign right" - self.r.set_theme(t) + self.renderer.set_theme(t) self.expected_answer = QtCore.QRect(0, 0, 800, 342) - self.answer = self.r.render_screen(0) + self.answer = self.renderer.render_screen(0) self.bmpname = whoami() def test_theme_horizontal_align_centre(self): @@ -254,8 +253,8 @@ And drives away his fear. t.VerticalAlign = 0 t.HorizontalAlign = 2 t.Name = "halign centre" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 0, 679, 342) self.bmpname = whoami() @@ -267,8 +266,8 @@ And drives away his fear. t.HorizontalAlign = 0 t.WrapStyle = 1 t.Name = "halign left lyric" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 0, 778, 342) self.bmpname = whoami() # }}} @@ -284,11 +283,11 @@ And drives away his fear. t.Outline = 1 t.ShadowColor = QtGui.QColor(64,128,0) t.OutlineColor = QtGui.QColor(128,0,0) - self.r.set_debug(1) - self.r.set_theme(t) - self.answer = self.r.render_screen(0) - hoffset = self.r._shadow_offset+2*(self.r._outline_offset) - voffset = hoffset * (len(self.r.words[0])+1) + self.renderer.set_debug(1) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) + hoffset = self.renderer._shadow_offset+2*(self.renderer._outline_offset) + voffset = hoffset * (len(self.renderer.words[0])+1) self.expected_answer = QtCore.QRect(0, 0, 559+hoffset, 342+voffset) self.bmpname = whoami() @@ -300,15 +299,14 @@ And drives away his fear. t.BackgroundParameter1 = QtGui.QColor(0,0,64) t.Name = "font" t.FontName = "Times New Roman" - self.r.set_theme(t) - self.answer = self.r.render_screen(0) + self.renderer.set_theme(t) + self.answer = self.renderer.render_screen(0) self.expected_answer = QtCore.QRect(0, 0, 499, 336) self.bmpname=whoami() - if __name__ == "__main__": - t = TestRenderTheme() - t.setup_class() - t.setup_method(None) - t.test_bg_stretch_y() - t.teardown_method(None) + test_render_theme = TestRenderTheme() + test_render_theme.setup_class() + test_render_theme.setup_method(None) + test_render_theme.test_bg_stretch_y() + test_render_theme.teardown_method(None) diff --git a/openlp/core/theme/test/test_theme.py b/openlp/core/theme/test/test_theme.py index 211d23be9..024142508 100644 --- a/openlp/core/theme/test/test_theme.py +++ b/openlp/core/theme/test/test_theme.py @@ -1,55 +1,57 @@ import os +import os.path import sys -mypath=os.path.split(os.path.abspath(__file__))[0] -sys.path.insert(0,(os.path.join(mypath, '..' ,'..', '..', '..'))) -print sys.path +from PyQt4 import QtGui from openlp.core.theme import Theme -import os.path -from PyQt4 import QtGui + +mypath = os.path.split(os.path.abspath(__file__))[0] +sys.path.insert(0, (os.path.join(mypath, '..', '..', '..', '..'))) + +print sys.path + def test_read_theme(): - dir=os.path.split(__file__)[0] + dir = os.path.split(__file__)[0] # test we can read a theme - t=Theme(os.path.join(dir, 'test_theme.xml')) - print t - assert(t.BackgroundParameter1 == 'sunset1.jpg') - assert(t.BackgroundParameter2 == None) - assert(t.BackgroundParameter3 == None) - assert(t.BackgroundType == 2) - assert(t.FontColor == QtGui.QColor(255,255,255)) - assert(t.FontName == 'Tahoma') - assert(t.FontProportion == 16) - assert(t.FontUnits == 'pixels') - assert(t.HorizontalAlign == 2) - assert(t.Name == 'openlp.org Packaged Theme') - assert(t.Outline == -1) - assert(t.OutlineColor == QtGui.QColor(255,0,0)) - assert(t.Shadow == -1) - assert(t.ShadowColor == QtGui.QColor(0,0,1)) - assert(t.VerticalAlign == 0) + theme = Theme(os.path.join(dir, 'test_theme.xml')) + print theme + assert(theme.BackgroundParameter1 == 'sunset1.jpg') + assert(theme.BackgroundParameter2 is None) + assert(theme.BackgroundParameter3 is None) + assert(theme.BackgroundType == 2) + assert(theme.FontColor == QtGui.QColor(255,255,255)) + assert(theme.FontName == 'Tahoma') + assert(theme.FontProportion == 16) + assert(theme.FontUnits == 'pixels') + assert(theme.HorizontalAlign == 2) + assert(theme.Name == 'openlp.org Packaged Theme') + assert(theme.Outline == -1) + assert(theme.OutlineColor == QtGui.QColor(255,0,0)) + assert(theme.Shadow == -1) + assert(theme.ShadowColor == QtGui.QColor(0,0,1)) + assert(theme.VerticalAlign == 0) + def test_theme(): # test we create a "blank" theme correctly - t=Theme() - print t - assert(t.BackgroundParameter1 == QtGui.QColor(0,0,0)) - assert(t.BackgroundParameter2 == None) - assert(t.BackgroundParameter3 == None) - assert(t.BackgroundType == 0) - assert(t.FontColor == QtGui.QColor(255,255,255)) - assert(t.FontName == 'Arial') - assert(t.FontProportion == 30) - assert(t.HorizontalAlign == 0) - assert(t.FontUnits == 'pixels') - assert(t.Name == 'BlankStyle') - assert(t.Outline == 0) - assert(t.Shadow == 0) - assert(t.VerticalAlign == 0) - + theme = Theme() + print theme + assert(theme.BackgroundParameter1 == QtGui.QColor(0,0,0)) + assert(theme.BackgroundParameter2 is None) + assert(theme.BackgroundParameter3 is None) + assert(theme.BackgroundType == 0) + assert(theme.FontColor == QtGui.QColor(255,255,255)) + assert(theme.FontName == 'Arial') + assert(theme.FontProportion == 30) + assert(theme.HorizontalAlign == 0) + assert(theme.FontUnits == 'pixels') + assert(theme.Name == 'BlankStyle') + assert(theme.Outline == 0) + assert(theme.Shadow == 0) + assert(theme.VerticalAlign == 0) print "Tests passed" - if __name__ == "__main__": test_read_theme() test_theme() diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 66c720261..28a2b9f06 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -23,7 +23,8 @@ ############################################################################### import logging -import os, os.path +import os +import os.path from PyQt4 import QtCore, QtGui @@ -178,7 +179,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def loadTheme(self, theme): log.debug(u'LoadTheme %s', theme) - if theme == None: + if theme is None: self.theme.parse(self.thememanager.baseTheme()) else: xml_file = os.path.join(self.path, theme, theme + u'.xml') diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 2cf7b03ed..46a54b13d 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -420,8 +420,6 @@ class ServiceManager(QtGui.QWidget): self.config.set_last_dir(filename) try: zip = zipfile.ZipFile(unicode(filename)) - filexml = None - themename = None for file in zip.namelist(): if os.name == u'nt': winfile = string.replace(file, '/', os.path.sep) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8f7b6be86..e7a9cf52e 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -292,7 +292,7 @@ class SlideController(QtGui.QWidget): label = QtGui.QLabel() label.setMargin(8) #It is a Image - if frame[u'text'] == None: + if frame[u'text'] is None: pixmap = self.parent.RenderManager.resize_image(frame[u'image']) label.setScaledContents(True) label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) @@ -340,7 +340,7 @@ class SlideController(QtGui.QWidget): label = self.PreviewListWidget.cellWidget(row, 0) frame = self.serviceitem.frames[row][u'image'] before = time.time() - if frame == None: + if frame is None: frame = self.serviceitem.render_individual(row) self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) log.info(u'Slide Rendering took %4s' % (time.time() - before)) diff --git a/openlp/core/ui/test/test_service_manager.py b/openlp/core/ui/test/test_service_manager.py index 05c919eb2..a23819383 100644 --- a/openlp/core/ui/test/test_service_manager.py +++ b/openlp/core/ui/test/test_service_manager.py @@ -17,7 +17,8 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ import sys -import os, os.path +import os +import os.path import logging from PyQt4 import QtGui diff --git a/openlp/migration/display.py b/openlp/migration/display.py index b484f1fef..fb9fb0d61 100644 --- a/openlp/migration/display.py +++ b/openlp/migration/display.py @@ -26,7 +26,7 @@ import logging class Display(): global log - log=logging.getLogger(u'Display Logger') + log = logging.getLogger(u'Display Logger') log.info(u'Display Class loaded') @staticmethod @@ -36,6 +36,6 @@ class Display(): @staticmethod def sub_output(string): - if not string == None: + if not string is None: log.debug(u' '+string); print (u' '+string) diff --git a/openlp/migration/migratesongs.py b/openlp/migration/migratesongs.py index e1b13b2c6..51695b9cb 100644 --- a/openlp/migration/migratesongs.py +++ b/openlp/migration/migratesongs.py @@ -168,7 +168,6 @@ class MigrateSongs(): author.first_name = u'' author.last_name = u'' else: - id = int(bb[0]) author = self.session.query(Author).get(bb[0]) song.authors.append(author) try: diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index d077ea489..79732922e 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -23,7 +23,8 @@ ############################################################################### import logging -import os, os.path +import os +import os.path from PyQt4 import QtCore, QtGui @@ -33,7 +34,7 @@ from openlp.core.lib import Receiver, translate class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): global log - log=logging.getLogger(u'BibleImportForm') + log = logging.getLogger(u'BibleImportForm') log.info(u'BibleImportForm loaded') """ Class documentation goes here. @@ -136,13 +137,16 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.checkOsis() def onProxyAddressEditLostFocus(self): - self.config.set_config(u'proxy_address', unicode(self.AddressEdit.displayText())) + self.config.set_config( + u'proxy_address', unicode(self.AddressEdit.displayText())) def onProxyUsernameEditLostFocus(self): - self.config.set_config(u'proxy_username', unicode(self.UsernameEdit.displayText())) + self.config.set_config( + u'proxy_username', unicode(self.UsernameEdit.displayText())) def onProxyPasswordEditLostFocus(self): - self.config.set_config(u'proxy_password', unicode(self.PasswordEdit.displayText())) + self.config.set_config( + u'proxy_password', unicode(self.PasswordEdit.displayText())) def onLocationComboBoxSelected(self): self.checkHttp() @@ -161,8 +165,9 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): def onImportButtonClicked(self): message = u'Bible import completed' - if self.biblemanager != None: - if not self.bible_type == None and len(self.BibleNameEdit.displayText()) > 0: + if self.biblemanager is not None: + if not self.bible_type is None and \ + len(self.BibleNameEdit.displayText()) > 0: self.MessageLabel.setText(u'Import Started') self.ProgressBar.setMinimum(0) self.setMax(65) @@ -286,7 +291,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): def resetScreenFieldStates(self): # only reset if no bible type set. - if self.bible_type == None: + if self.bible_type is None: self.BooksLocationEdit.setReadOnly(False) self.VerseLocationEdit.setReadOnly(False) self.BooksFileButton.setEnabled(True) diff --git a/openlp/plugins/bibles/lib/bibleDBimpl.py b/openlp/plugins/bibles/lib/bibleDBimpl.py index fb068dad6..a9e31e4f8 100644 --- a/openlp/plugins/bibles/lib/bibleDBimpl.py +++ b/openlp/plugins/bibles/lib/bibleDBimpl.py @@ -137,12 +137,12 @@ class BibleDBImpl(BibleCommon): def get_bible_book(self, bookname): log.debug(u'get_bible_book %s', bookname) - bk = self.session.query(Book).filter( + book = self.session.query(Book).filter( Book.name.like(bookname + u'%')).first() - if bk == None: - bk = self.session.query(Book).filter( + if book is None: + book = self.session.query(Book).filter( Book.abbreviation.like(bookname + u'%')).first() - return bk + return book def get_bible_chapter(self, id, chapter): log.debug(u'get_bible_chapter %s, %s', id, chapter) diff --git a/openlp/plugins/bibles/lib/bibleHTTPimpl.py b/openlp/plugins/bibles/lib/bibleHTTPimpl.py index 3c2effdbe..48d9a1979 100644 --- a/openlp/plugins/bibles/lib/bibleHTTPimpl.py +++ b/openlp/plugins/bibles/lib/bibleHTTPimpl.py @@ -195,19 +195,19 @@ class BibleHTTPImpl(): Init confirms the bible exists and stores the database path. """ - bible = {} - biblesource = '' - proxyurl = None - bibleid = None + #bible = {} + self.biblesource = '' + self.proxyurl = None + self.bibleid = None - def set_proxy(self,proxyurl): + def set_proxy(self, proxyurl): """ Set the Proxy Url """ log.debug(u'set_proxy %s', proxyurl) self.proxyurl = proxyurl - def set_bibleid(self,bibleid): + def set_bibleid(self, bibleid): """ Set the bible id. The shore identifier of the the bible. @@ -215,7 +215,7 @@ class BibleHTTPImpl(): log.debug(u'set_bibleid %s', bibleid) self.bibleid = bibleid - def set_bible_source(self,biblesource): + def set_bible_source(self, biblesource): """ Set the source of where the bible text is coming from """ @@ -235,6 +235,5 @@ class BibleHTTPImpl(): else: ev = BGExtract(self.proxyurl) return ev.get_bible_chapter(self.bibleid, bookid, bookname, chapter) - except Exception, e: - log.error(u'Error thrown = %s', e.args[0]) - print e + except: + log.exception("Failed to get bible chapter") diff --git a/openlp/plugins/bibles/lib/bibleOSISimpl.py b/openlp/plugins/bibles/lib/bibleOSISimpl.py index 8bcf0d856..e2ccfaa19 100644 --- a/openlp/plugins/bibles/lib/bibleOSISimpl.py +++ b/openlp/plugins/bibles/lib/bibleOSISimpl.py @@ -90,7 +90,7 @@ class BibleOSISImpl(): detect_file.close() osis = codecs.open(osisfile_record, u'r', details['encoding']) book_ptr = None - id = 0 + #id = 0 count = 0 verseText = u' 0 : + if len(line) > 0: if line.startswith(u'['): tag = line - else : + else: r = self._reorder_verse(tag, tmpVerse) finalLyrics.extend(r) tag = "" @@ -173,12 +174,12 @@ class _OpenSong(XmlRootClass): return finalLyrics -class Song(object) : +class Song(object): """Handling song properties and methods handles all conversions between various input and output formats - CCLI : + CCLI: from_ccli_text_file to_ccli_text_file from_ccli_text_buffer @@ -195,13 +196,13 @@ class Song(object) : get_preview_slide get_render_slide - openlp1 : + openlp1: from_openlp1_lyrics_buffer to_openlp1_lyrics_buffer set_author_list get_author_list - editing and openlp2 : + editing and openlp2: set_* get_* """ @@ -263,13 +264,13 @@ class Song(object) : """Initialize from buffer(string) of xml lines in opensong format""" self._reset() opensong = _OpenSong(xmlcontent) - if opensong.title != None: + if opensong.title is not None: self.set_title(opensong.title) - if opensong.copyright != None : + if opensong.copyright is not None: self.set_copyright(opensong.copyright) - if opensong.presentation != None: + if opensong.presentation is not None: self.set_verse_order(opensong.presentation) - if opensong.ccli != None: + if opensong.ccli is not None: self.set_song_cclino(opensong.ccli) self.set_author_list(opensong.get_author_list()) self.set_category_array(opensong.get_category_array()) @@ -282,7 +283,7 @@ class Song(object) : """ lst = [] f = open(xmlfilename, 'r') - for line in f : + for line in f: lst.append(line) f.close() xml = "".join(lst) @@ -295,7 +296,7 @@ class Song(object) : """ punctuation = ".,:;!?&%#'\"/\\@`$|^~*-" s = title - for c in punctuation : + for c in punctuation: s = s.replace(c, '') return s @@ -308,9 +309,9 @@ class Song(object) : """ self.title = title.strip() self.search_title = self._remove_punctuation(title).strip() - if len(self.title) < 1 : + if len(self.title) < 1: raise SongTitleError(u'The title is empty') - if len(self.search_title) < 1 : + if len(self.search_title) < 1: raise SongTitleError(u'The searchable title is empty') def get_title(self): @@ -340,32 +341,32 @@ class Song(object) : n = 0 metMisc = False lyrics = [] - for l in textList : + for l in textList: n += 1 - if lastpart > 0 : + if lastpart > 0: lastpart += 1 - if lastpart == 2 : + if lastpart == 2: sCopyright = l[1:].strip() - if lastpart == 3 : + if lastpart == 3: sAuthor = l - elif l.startswith(u'CCLI Song') : + elif l.startswith(u'CCLI Song'): sCcli = l[13:].strip() lastpart = 1 - else : - if metMisc : + else: + if metMisc: metMisc = False - if l.upper().startswith(u'(BRIDGE)') : + if l.upper().startswith(u'(BRIDGE)'): lyrics.append(u'# Bridge') # otherwise unknown misc keyword - elif l.startswith(u'Misc') : + elif l.startswith(u'Misc'): metMisc = True elif l.startswith(u'Verse') or l.startswith(u'Chorus'): lyrics.append(u'# %s'%l) - else : + else: # should we remove multiple blank lines? - if n == 1 : + if n == 1: sName = l - else : + else: lyrics.append(l) # split on known separators lst = sAuthor.split(u'/') @@ -390,33 +391,33 @@ class Song(object) : f.close() self.from_ccli_text_buffer(lines) - def _assure_string(self, s): + def _assure_string(self, string_in): """Force a string is returned""" - if s == None : - r = "" - else : - r = unicode(s) - return r + if string_in is None: + string_out = "" + else: + string_out = unicode(s) + return string_out def _split_to_list(self, aString): """Split a string into a list - comma separated""" res = [] - if aString != None : + if aString is not None: lst = aString.split(u',') - for l in lst : + for l in lst: # remove whitespace res.append(l.strip()) return res def _list_to_string(self, strOrList): """Force a possibly list into a string""" - if type(strOrList) == StringType : + if type(strOrList) == StringType: lst = self._split_to_list(strOrList) - elif type(strOrList) == ListType : + elif type(strOrList) == ListType: lst = strOrList - elif type(strOrList) == NoneType : + elif strOrList is None: lst = [] - else : + else: raise SongTypeError(u'Variable not String or List') s = u', '.join(lst) return s @@ -486,9 +487,9 @@ class Song(object) : False -- list of strings ["John Newton", u'A Parker"] """ - if asOneString : + if asOneString: res = self._assure_string(self.author_list) - else : + else: res = self._split_to_list(self.author_list) return res @@ -497,9 +498,9 @@ class Song(object) : author_list -- a string or list of strings """ - if author_list == None : + if author_list is None: self.author_list = None - else : + else: self.author_list = self._list_to_string(author_list) def get_category_array(self, asOneString = True): @@ -511,9 +512,9 @@ class Song(object) : False -- list of strings ["Hymn", u'Gospel"] """ - if asOneString : + if asOneString: res = self._assure_string(self.category_array) - else : + else: res = self._split_to_list(self.category_array) return res @@ -522,9 +523,9 @@ class Song(object) : category_array -- a string or list of strings """ - if category_array == None : + if category_array is None: self.category_array = None - else : + else: self.category_array = self._list_to_string(category_array) def get_show_title(self): @@ -577,12 +578,12 @@ class Song(object) : self.slideList = [] tmpSlide = [] metContent = False - for l in self.lyrics : - if len(l) > 0 : + for l in self.lyrics: + if len(l) > 0: metContent = True tmpSlide.append(l) - else : - if metContent : + else: + if metContent: metContent = False self.slideList.append(tmpSlide) tmpSlide = [] @@ -598,22 +599,22 @@ class Song(object) : def get_preview_slide(self, slideNumber): """Return the preview text for specified slide number - slideNumber -- 0: all slides, 1..n : specific slide + slideNumber -- 0: all slides, 1..n: specific slide a list of strings are returned """ num = len(self.slideList) - if num < 1 : + if num < 1: raise SongSlideError(u'No slides in this song') - elif slideNumber > num : + elif slideNumber > num: raise SongSlideError(u'Slide number too high') - if slideNumber > 0 : + if slideNumber > 0: # return this slide res = self.slideList[slideNumber-1] # find theme in this slide - else : + else: res = [] for i in range(num): - if i > 0 : + if i > 0: res.append(u'') res.extend() # remove formattingincluding themes @@ -633,26 +634,26 @@ class Song(object) : lyric-part as a list of strings] """ num = len(self.slideList) - if num < 1 : + if num < 1: raise SongSlideError(u'No slides in this song') - elif slideNumber > num : + elif slideNumber > num: raise SongSlideError(u'Slide number too high') res = [] - if self.show_title : + if self.show_title: title = self.get_title() - else : + else: title = "" - if self.show_author_list : + if self.show_author_list: author = self.get_author_list(True) - else : + else: author = "" - if self.show_copyright : + if self.show_copyright: cpright = self.get_copyright() - else : + else: cpright = "" - if self.show_song_cclino : + if self.show_song_cclino: ccli = self.get_song_cclino() - else : + else: ccli = "" theme = self.get_theme() # examine the slide for a theme