[Tests] Changes to tests and test configs of Travis/tox

* Added pip chaching
* Added disable_new_release_check to tracker icons tests
* Fixed test_torrentview
* Require minimum tox version 1.8
* Fixed GTKUI tests and testcoverage by using xvfb on travis
* Separated the apt dependencies for commands requiering GTKUI deps
This commit is contained in:
bendikro 2014-10-13 16:57:46 +02:00 committed by Calum Lind
parent 8334bf9477
commit 448261394f
6 changed files with 73 additions and 34 deletions

View File

@ -1,37 +1,50 @@
language: python
python:
# - "2.6"
- "2.7"
# command to install dependencies
install:
- pip install tox
# Cache packages download with apt
cache:
directories:
- $HOME/.pip-cache/
before_install:
- lsb_release -a
- sudo add-apt-repository ppa:deluge-team/ppa -y
- sudo apt-get update
- sudo apt-get install python-libtorrent
script:
- tox
# command to install dependencies
install:
- bash -c "echo $APTPACKAGES"
- sudo apt-get install $APTPACKAGES
- pip install "tox>=1.8" --download-cache $HOME/.pip-cache
env:
global:
- PIP_DOWNLOAD_CACHE=$HOME/.pip-cache/
- APTPACKAGES="python-libtorrent"
- APTPACKAGES_GTKUI="python-gobject python-glade2"
matrix:
- TOX_ENV=pydef
- TOX_ENV=trial
- TOX_ENV=todo
# - TOX_ENV=plugins
- TOX_ENV=flake8
- TOX_ENV=flake8-complexity
- TOX_ENV=isort
- TOX_ENV=docs
- TOX_ENV=testcoverage
- TOX_ENV=todo
- TOX_ENV=trial APTPACKAGES="$APTPACKAGES $APTPACKAGES_GTKUI"
- TOX_ENV=pygtkui APTPACKAGES="$APTPACKAGES $APTPACKAGES_GTKUI"
- TOX_ENV=testcoverage APTPACKAGES="$APTPACKAGES $APTPACKAGES_GTKUI"
# - TOX_ENV=plugins
virtualenv:
system_site_packages: true
# We use xvfb for the GTKUI tests
before_script:
- export PYTHONPATH=$PYTHONPATH:$PWD
- python -c "import libtorrent as lt; print lt.version"
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
script:
- tox -e $TOX_ENV

View File

@ -1,13 +1,18 @@
from twisted.trial import unittest
import deluge.component as component
from deluge.core.authmanager import AUTH_LEVEL_ADMIN, AuthManager
from .basetest import BaseTestCase
class AuthManagerTestCase(unittest.TestCase):
def setUp(self): # NOQA
class AuthManagerTestCase(BaseTestCase):
def set_up(self):
self.auth = AuthManager()
self.auth.start()
def tear_down(self):
# We must ensure that the components in component registry are removed
return component.shutdown()
def test_authorize(self):
from deluge.ui import common
self.assertEquals(

View File

@ -1,12 +1,13 @@
from twisted.internet import defer
from twisted.internet.error import CannotListenError
from twisted.trial import unittest
import deluge.component as component
from deluge import error
from deluge.core.authmanager import AUTH_LEVEL_ADMIN
from deluge.ui.client import Client, DaemonSSLProxy, client
from . import common
from .basetest import BaseTestCase
class NoVersionSendingDaemonSSLProxy(DaemonSSLProxy):
@ -63,9 +64,9 @@ class NoVersionSendingClient(Client):
self.disconnect_callback()
class ClientTestCase(unittest.TestCase):
class ClientTestCase(BaseTestCase):
def setUp(self): # NOQA
def set_up(self):
self.listen_port = 58846
tries = 10
error = None
@ -82,8 +83,9 @@ class ClientTestCase(unittest.TestCase):
if error:
raise error
def tearDown(self): # NOQA
def tear_down(self):
self.core.terminate()
return component.shutdown()
def test_connect_no_credentials(self):
d = client.connect(

View File

@ -1,15 +1,27 @@
import pytest
import gobject
from twisted.trial import unittest
import deluge.common
import deluge.component as component
from deluge.configmanager import ConfigManager
from . import common
from .basetest import BaseTestCase
libs_available = True
# Allow running other tests without GTKUI dependencies available
try:
from gobject import TYPE_UINT64
from deluge.ui.gtkui.mainwindow import MainWindow
from deluge.ui.gtkui.menubar import MenuBar
from deluge.ui.gtkui.torrentdetails import TorrentDetails
from deluge.ui.gtkui.torrentview import TorrentView
from .basetest import BaseTestCase
from deluge.ui.gtkui.gtkui import DEFAULT_PREFS
except ImportError as err:
libs_available = False
TYPE_UINT64 = "Whatever"
import traceback
traceback.print_exc()
deluge.common.setup_translations()
@ -23,13 +35,19 @@ class TorrentviewTestCase(BaseTestCase):
u'Up Speed', u'Down Limit', u'Up Limit', u'ETA', u'Ratio',
u'Avail', u'Added', u'Completed', u'Complete Seen',
u'Tracker', u'Download Folder', u'Owner', u'Shared']
default_liststore_columns = [bool, str, bool, int, str, str, gobject.TYPE_UINT64,
gobject.TYPE_UINT64, gobject.TYPE_UINT64, gobject.TYPE_UINT64,
default_liststore_columns = [bool, str, bool, int, str, str, TYPE_UINT64,
TYPE_UINT64, TYPE_UINT64, TYPE_UINT64,
float, str, int, int, int, int, float, float, float,
float, float, int, float, float, float, float,
float, str, str, str, str, bool]
def set_up(self):
if libs_available is False:
raise unittest.SkipTest("GTKUI dependencies not available")
common.set_tmp_config_dir()
# MainWindow loads this config file, so lets make sure it contains the defaults
ConfigManager("gtkui.conf", defaults=DEFAULT_PREFS)
self.mainwindow = MainWindow()
self.torrentview = TorrentView()
self.torrentdetails = TorrentDetails()

View File

@ -4,12 +4,13 @@ import deluge.component as component
import deluge.ui.tracker_icons
from deluge.ui.tracker_icons import TrackerIcon, TrackerIcons
from . import common
from .basetest import BaseTestCase
from .common import set_tmp_config_dir
set_tmp_config_dir()
common.set_tmp_config_dir()
dirname = os.path.dirname(__file__)
deluge.ui.tracker_icons.PIL_INSTALLED = False
common.disable_new_release_check()
class TrackerIconsTestCase(BaseTestCase):

View File

@ -120,7 +120,7 @@ whitelist_externals =
{[testenv]whitelist_externals}
coverage
commands =
coverage run --branch --source=deluge -m py.test "not (todo or gtkui)" deluge/tests/
coverage run --branch --source=deluge -m py.test -m "not todo" deluge/tests/
[testenv:testcoverage]
deps = {[testcoveragebase]deps}