diff --git a/testing/conftest.py b/testing/conftest.py index 3f3b79bc7..d21ced22d 100644 --- a/testing/conftest.py +++ b/testing/conftest.py @@ -66,11 +66,11 @@ def pytest_funcarg__openlpapp(request): # Test function argument to make openlp gui instance persistent for all tests. -def pytest_funcarg__empty_dbmanager(request): +def pytest_funcarg__empty_songs_db(request): def setup(): tmpdir = request.getfuncargvalue('tmpdir') db_file_path = tmpdir.join('songs.sqlite') - print db_file_path + # unique QSettings group unique = ''.join(random.choice(string.letters + string.digits) for i in range(8)) plugin_name = 'test_songs_%s' % unique @@ -82,5 +82,6 @@ def pytest_funcarg__empty_dbmanager(request): db_file_path=db_file_path.strpath) return manager def teardown(manager): + # sqlalchemy allows to map classess to only one database at a time clear_mappers() return request.cached_setup(setup=setup, teardown=teardown, scope='function') diff --git a/testing/test_app.py b/testing/test_app.py index 00cd744ba..2cfda14d0 100644 --- a/testing/test_app.py +++ b/testing/test_app.py @@ -26,6 +26,10 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +GUI tests +""" + from openlp.core import OpenLP from openlp.core.ui.mainwindow import MainWindow diff --git a/testing/test_songs_db.py b/testing/test_songs_db.py new file mode 100644 index 000000000..4210b3fef --- /dev/null +++ b/testing/test_songs_db.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan # +# Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, # +# Armin Köhler, Joshua Millar, Stevan Pettit, Andreas Preikschat, Mattias # +# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # +# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# 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 # +############################################################################### + +""" +Songs database tests +""" + +from openlp.plugins.songs.lib.db import Author, Book, MediaFile, Song, Topic + + +def test_empty_songdb(empty_songs_db): + g = empty_songs_db.get_all_objects + assert g(Author) == [] + assert g(Book) == [] + assert g(MediaFile) == [] + assert g(Song) == [] + assert g(Topic) == [] + c = empty_songs_db.get_object_count + assert c(Author) == 0 + assert c(Book) == 0 + assert c(MediaFile) == 0 + assert c(Song) == 0 + assert c(Topic) == 0 + + +def test_nonexisting_class(empty_songs_db): + # test class not mapped to any sqlalchemy table + assert 0