forked from openlp/openlp
HEAD
This commit is contained in:
commit
9b70fe44cf
@ -135,6 +135,7 @@ class BibleImportForm(OpenLPWizard):
|
||||
Add the bible import specific wizard pages.
|
||||
"""
|
||||
# Select Page
|
||||
self.spacers = []
|
||||
self.select_page = QtWidgets.QWizardPage()
|
||||
self.select_page.setObjectName('SelectPage')
|
||||
self.select_page_layout = QtWidgets.QVBoxLayout(self.select_page)
|
||||
@ -147,8 +148,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.format_combo_box.addItems(['', '', '', '', '', '', ''])
|
||||
self.format_combo_box.setObjectName('FormatComboBox')
|
||||
self.format_layout.addRow(self.format_label, self.format_combo_box)
|
||||
self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
|
||||
self.format_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.format_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_page_layout.addLayout(self.format_layout)
|
||||
self.select_stack = QtWidgets.QStackedLayout()
|
||||
self.select_stack.setObjectName('SelectStack')
|
||||
@ -170,7 +171,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.osis_browse_button.setObjectName('OsisBrowseButton')
|
||||
self.osis_file_layout.addWidget(self.osis_browse_button)
|
||||
self.osis_layout.addRow(self.osis_file_label, self.osis_file_layout)
|
||||
self.osis_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.osis_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_stack.addWidget(self.osis_widget)
|
||||
self.csv_widget = QtWidgets.QWidget(self.select_page)
|
||||
self.csv_widget.setObjectName('CsvWidget')
|
||||
@ -203,7 +205,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.csv_verses_button.setObjectName('CsvVersesButton')
|
||||
self.csv_verses_layout.addWidget(self.csv_verses_button)
|
||||
self.csv_layout.addRow(self.csv_verses_label, self.csv_verses_layout)
|
||||
self.csv_layout.setItem(3, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.csv_layout.setItem(2, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_stack.addWidget(self.csv_widget)
|
||||
self.open_song_widget = QtWidgets.QWidget(self.select_page)
|
||||
self.open_song_widget.setObjectName('OpenSongWidget')
|
||||
@ -223,7 +226,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.open_song_browse_button.setObjectName('OpenSongBrowseButton')
|
||||
self.open_song_file_layout.addWidget(self.open_song_browse_button)
|
||||
self.open_song_layout.addRow(self.open_song_file_label, self.open_song_file_layout)
|
||||
self.open_song_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.open_song_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_stack.addWidget(self.open_song_widget)
|
||||
self.web_tab_widget = QtWidgets.QTabWidget(self.select_page)
|
||||
self.web_tab_widget.setObjectName('WebTabWidget')
|
||||
@ -300,7 +304,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.zefania_browse_button.setObjectName('ZefaniaBrowseButton')
|
||||
self.zefania_file_layout.addWidget(self.zefania_browse_button)
|
||||
self.zefania_layout.addRow(self.zefania_file_label, self.zefania_file_layout)
|
||||
self.zefania_layout.setItem(5, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.zefania_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_stack.addWidget(self.zefania_widget)
|
||||
self.sword_widget = QtWidgets.QWidget(self.select_page)
|
||||
self.sword_widget.setObjectName('SwordWidget')
|
||||
@ -381,7 +386,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.wordproject_browse_button.setObjectName('WordProjectBrowseButton')
|
||||
self.wordproject_file_layout.addWidget(self.wordproject_browse_button)
|
||||
self.wordproject_layout.addRow(self.wordproject_file_label, self.wordproject_file_layout)
|
||||
self.wordproject_layout.setItem(5, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||
self.spacers.append(QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum))
|
||||
self.wordproject_layout.setItem(1, QtWidgets.QFormLayout.LabelRole, self.spacers[-1])
|
||||
self.select_stack.addWidget(self.wordproject_widget)
|
||||
self.select_page_layout.addLayout(self.select_stack)
|
||||
self.addPage(self.select_page)
|
||||
@ -499,7 +505,8 @@ class BibleImportForm(OpenLPWizard):
|
||||
self.csv_verses_label.minimumSizeHint().width(),
|
||||
self.open_song_file_label.minimumSizeHint().width(),
|
||||
self.zefania_file_label.minimumSizeHint().width())
|
||||
self.spacer.changeSize(label_width, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
for spacer in self.spacers:
|
||||
spacer.changeSize(label_width, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
|
||||
def validateCurrentPage(self):
|
||||
"""
|
||||
|
@ -35,8 +35,9 @@ import sys
|
||||
import time
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
appveyor_build_url = 'https://ci.appveyor.com/project/TomasGroth/openlp/build'
|
||||
appveyor_api_url = 'https://ci.appveyor.com/api/projects/TomasGroth/openlp'
|
||||
appveyor_build_url = 'https://ci.appveyor.com/project/OpenLP/{project}/build'
|
||||
appveyor_api_url = 'https://ci.appveyor.com/api/projects/OpenLP/{project}'
|
||||
appveyor_log_url = 'https://ci.appveyor.com/api/buildjobs/{buildid}/log'
|
||||
|
||||
webhook_element = \
|
||||
{
|
||||
@ -84,7 +85,7 @@ def get_version():
|
||||
return version_string, version
|
||||
|
||||
|
||||
def get_yml(branch):
|
||||
def get_yml(branch, build_type):
|
||||
"""
|
||||
Returns the content of appveyor.yml and inserts the branch to be build
|
||||
"""
|
||||
@ -92,7 +93,7 @@ def get_yml(branch):
|
||||
yml_text = f.read()
|
||||
f.close()
|
||||
yml_text = yml_text.replace('BRANCHNAME', branch)
|
||||
if 'openlp-core/openlp/trunk' in branch:
|
||||
if build_type in ['openlp', 'trunk']:
|
||||
yml_text = yml_text.replace('BUILD_DOCS', '$TRUE')
|
||||
else:
|
||||
yml_text = yml_text.replace('BUILD_DOCS', '$FALSE')
|
||||
@ -115,23 +116,28 @@ def hook(webhook_url, yml):
|
||||
print(responce.read().decode('utf-8'))
|
||||
|
||||
|
||||
def get_appveyor_build_url(branch):
|
||||
def get_appveyor_build_url(build_type):
|
||||
"""
|
||||
Get the url of the build.
|
||||
"""
|
||||
responce = urllib.request.urlopen(appveyor_api_url)
|
||||
responce = urllib.request.urlopen(appveyor_api_url.format(project=build_type))
|
||||
json_str = responce.read().decode('utf-8')
|
||||
build_json = json.loads(json_str)
|
||||
build_url = '%s/%s' % (appveyor_build_url, build_json['build']['version'])
|
||||
print('Check this URL for build status: %s' % build_url)
|
||||
build_url = '%s/%s' % (appveyor_build_url.format(project=build_type), build_json['build']['version'])
|
||||
print(build_url.format(project=build_type))
|
||||
print(appveyor_log_url.format(buildid=build_json['build']['jobs'][0]['jobId']))
|
||||
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print('Usage: %s <webhook-url> <branch>' % sys.argv[0])
|
||||
if len(sys.argv) != 4:
|
||||
print('Invalid number of arguments\nUsage: %s <webhook-url> <branch> <dev|trunk|openlp>' % sys.argv[0])
|
||||
else:
|
||||
webhook_url = sys.argv[1]
|
||||
branch = sys.argv[2]
|
||||
hook(webhook_url, get_yml(branch))
|
||||
build_type = sys.argv[3]
|
||||
if build_type not in ['dev', 'trunk', 'openlp']:
|
||||
print('Invalid build type\nUsage: %s <webhook-url> <branch> <dev|trunk|openlp>' % sys.argv[0])
|
||||
exit()
|
||||
hook(webhook_url, get_yml(branch, build_type))
|
||||
# Wait 5 seconds to make sure the hook has been triggered
|
||||
time.sleep(5)
|
||||
get_appveyor_build_url(branch)
|
||||
get_appveyor_build_url(build_type)
|
||||
|
@ -12,21 +12,21 @@ environment:
|
||||
|
||||
install:
|
||||
# Install dependencies from pypi
|
||||
- "%PYTHON%\\python.exe -m pip install sqlalchemy alembic chardet beautifulsoup4 Mako nose mock pyodbc psycopg2 pypiwin32 pyenchant"
|
||||
- "%PYTHON%\\python.exe -m pip install sqlalchemy alembic chardet beautifulsoup4 Mako nose mock pyodbc==4.0.8 psycopg2 pypiwin32 pyenchant"
|
||||
# Install mysql dependency
|
||||
- "%PYTHON%\\python.exe -m pip install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df"
|
||||
# Download and install lxml and pyicu (originally from http://www.lfd.uci.edu/~gohlke/pythonlibs/)
|
||||
- "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/lxml-3.6.4-cp34-cp34m-win32.whl"
|
||||
- "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/PyICU-1.9.5-cp34-cp34m-win32.whl"
|
||||
# Download and install PyQt5
|
||||
- curl -L -O http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe
|
||||
- appveyor DownloadFile http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe
|
||||
- PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe /S
|
||||
# Download and unpack mupdf
|
||||
- curl -O http://mupdf.com/downloads/archive/mupdf-1.9a-windows.zip
|
||||
- appveyor DownloadFile http://mupdf.com/downloads/archive/mupdf-1.9a-windows.zip
|
||||
- 7z x mupdf-1.9a-windows.zip
|
||||
- cp mupdf-1.9a-windows/mupdf.exe openlp-branch/mupdf.exe
|
||||
# Download and unpack mediainfo
|
||||
- curl -O https://mediaarea.net/download/binary/mediainfo/0.7.90/MediaInfo_CLI_0.7.90_Windows_i386.zip
|
||||
- appveyor DownloadFile https://mediaarea.net/download/binary/mediainfo/0.7.90/MediaInfo_CLI_0.7.90_Windows_i386.zip
|
||||
- mkdir MediaInfo
|
||||
- 7z x -oMediaInfo MediaInfo_CLI_0.7.90_Windows_i386.zip
|
||||
- cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe
|
||||
@ -43,15 +43,15 @@ test_script:
|
||||
after_test:
|
||||
# This is where we create a package using PyInstaller
|
||||
# First get PyInstaller
|
||||
- curl -L -O https://github.com/pyinstaller/pyinstaller/releases/download/v3.2/PyInstaller-3.2.zip
|
||||
- appveyor DownloadFile https://github.com/pyinstaller/pyinstaller/releases/download/v3.2/PyInstaller-3.2.zip
|
||||
- 7z x PyInstaller-3.2.zip
|
||||
# Install PyInstaller dependencies
|
||||
- "%PYTHON%\\python.exe -m pip install future pefile"
|
||||
# Download and install Inno Setup - used for packaging
|
||||
- curl -L -O http://www.jrsoftware.org/download.php/is-unicode.exe
|
||||
- appveyor DownloadFile http://www.jrsoftware.org/download.php/is-unicode.exe
|
||||
- is-unicode.exe /VERYSILENT /SUPPRESSMSGBOXES /SP-
|
||||
# Download and unpack portable-bundle
|
||||
- curl -O https://get.openlp.org/win-sdk/portable-setup.7z
|
||||
- appveyor DownloadFile https://get.openlp.org/win-sdk/portable-setup.7z
|
||||
- 7z x portable-setup.7z
|
||||
# Disabled portable installers - can't figure out how to make them silent
|
||||
# - curl -L -O http://downloads.sourceforge.net/project/portableapps/PortableApps.com%20Installer/PortableApps.comInstaller_3.4.4.paf.exe
|
||||
@ -61,7 +61,7 @@ after_test:
|
||||
# - curl -L -O http://downloads.sourceforge.net/project/portableapps/NSIS%20Portable/NSISPortable_3.0_English.paf.exe
|
||||
# - NSISPortable_3.0_English.paf.exe /S
|
||||
# Get the packaging code
|
||||
- curl -L http://bazaar.launchpad.net/~openlp-core/openlp/packaging/tarball -o packaging.tar.gz
|
||||
- appveyor DownloadFile http://bazaar.launchpad.net/~openlp-core/openlp/packaging/tarball -FileName packaging.tar.gz
|
||||
- 7z e packaging.tar.gz
|
||||
- 7z x packaging.tar
|
||||
- mv ~openlp-core/openlp/packaging packaging
|
||||
@ -74,7 +74,7 @@ after_test:
|
||||
7z x documentation.tar
|
||||
mv ~openlp-core/openlp/documentation documentation
|
||||
cd packaging
|
||||
&"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update --skip-translations -c windows/config-appveyor.ini -b ../openlp-branch -d ../documentation --portable
|
||||
&"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update -c windows/config-appveyor.ini -b ../openlp-branch -d ../documentation --portable
|
||||
} else {
|
||||
cd packaging
|
||||
&"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update --skip-translations -c windows/config-appveyor.ini -b ../openlp-branch --portable
|
||||
|
@ -59,14 +59,13 @@ class OpenLPJobs(object):
|
||||
Branch_Pull = 'Branch-01-Pull'
|
||||
Branch_Functional = 'Branch-02-Functional-Tests'
|
||||
Branch_Interface = 'Branch-03-Interface-Tests'
|
||||
Branch_Windows_Functional = 'Branch-04a-Windows_Functional_Tests'
|
||||
Branch_Windows_Interface = 'Branch-04b-Windows_Interface_Tests'
|
||||
Branch_PEP = 'Branch-05a-Code_Analysis'
|
||||
Branch_Coverage = 'Branch-05b-Test_Coverage'
|
||||
Branch_Pylint = 'Branch-05c-Code_Analysis2'
|
||||
Branch_PEP = 'Branch-04a-Code_Analysis'
|
||||
Branch_Coverage = 'Branch-04b-Test_Coverage'
|
||||
Branch_Pylint = 'Branch-04c-Code_Analysis2'
|
||||
Branch_AppVeyor = 'Branch-05-AppVeyor-Tests'
|
||||
|
||||
Jobs = [Branch_Pull, Branch_Functional, Branch_Interface, Branch_Windows_Functional, Branch_Windows_Interface,
|
||||
Branch_PEP, Branch_Coverage, Branch_Pylint]
|
||||
Jobs = [Branch_Pull, Branch_Functional, Branch_Interface, Branch_PEP, Branch_Coverage, Branch_Pylint,
|
||||
Branch_AppVeyor]
|
||||
|
||||
|
||||
class Colour(object):
|
||||
|
@ -28,12 +28,11 @@ from unittest.mock import MagicMock, patch
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.bibles.forms.bibleimportform import BibleImportForm, PYSWORD_AVAILABLE
|
||||
from openlp.plugins.bibles.forms import bibleimportform
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
@skip('One of the QFormLayouts in the BibleImportForm is causing a segfault')
|
||||
class TestBibleImportForm(TestCase, TestMixin):
|
||||
"""
|
||||
Test the BibleImportForm class
|
||||
@ -47,9 +46,9 @@ class TestBibleImportForm(TestCase, TestMixin):
|
||||
self.setup_application()
|
||||
self.main_window = QtWidgets.QMainWindow()
|
||||
Registry().register('main_window', self.main_window)
|
||||
PYSWORD_AVAILABLE = False
|
||||
bibleimportform.PYSWORD_AVAILABLE = False
|
||||
self.mocked_manager = MagicMock()
|
||||
self.form = BibleImportForm(self.main_window, self.mocked_manager, MagicMock())
|
||||
self.form = bibleimportform.BibleImportForm(self.main_window, self.mocked_manager, MagicMock())
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user