# HG changeset patch # User Andrey Skvortsov # Date 1505493941 -10800 # Node ID b4764ebb352db1d3f2b0beded6ffde62cc8182bc # Parent 5562f34f2fc2b2bdee16dfae00db0a969b440b38 move configuration for test environment into separate file conftest.py diff -r 5562f34f2fc2 -r b4764ebb352d tests/tools/conftest.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/tools/conftest.py Fri Sep 15 19:45:41 2017 +0300 @@ -0,0 +1,69 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz, a Integrated Development Environment for +# programming IEC 61131-3 automates supporting plcopen standard and CanFestival. +# +# Copyright (C) 2017: Andrey Skvortsov +# +# See COPYING file for copyrights details. +# +# 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; either version 2 +# of the License, or (at your option) any later version. +# +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import os +import sys +import pytest +import xvfbwrapper +import time + +# append module root directory to sys.path +sys.path.append( + os.path.abspath( + os.path.join( + os.path.dirname(__file__), '..', '..') + ) +) + + +# +# Something seems to be broken in Beremiz application, +# because after tests in test_application.py during Xvfb shutdown +# pytest returns error message: +# pytest: Fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server :2821. +# +# As a result of that pytest returns code 1 as some tests were failed, +# but they aren't. +# +# To avoid this Xvfb is launched and killed not by pytest. +# $ Xvfb :42 -screen 0 1280x1024x24 & +# $ export DISPLAY=:42 +# $ pytest --timeout=10 ./tests/tools +# $ pkill -9 Xvfb +# +# TODO: find root of this problem. + + +# vdisplay = None +# +# @pytest.fixture(scope="session", autouse=True) +# def start_xvfb_server(request): +# global vdisplay +# vdisplay = xvfbwrapper.Xvfb(width=1280, height=720) +# vdisplay.start() +# request.addfinalizer(stop_xvfb_server) +# +# def stop_xvfb_server(): +# if vdisplay is not None: +# vdisplay.stop() diff -r 5562f34f2fc2 -r b4764ebb352d tests/tools/test_application.py --- a/tests/tools/test_application.py Fri Sep 15 19:01:31 2017 +0300 +++ b/tests/tools/test_application.py Fri Sep 15 19:45:41 2017 +0300 @@ -1,22 +1,36 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz, a Integrated Development Environment for +# programming IEC 61131-3 automates supporting plcopen standard and CanFestival. +# +# Copyright (C) 2017: Andrey Skvortsov +# +# See COPYING file for copyrights details. +# +# 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; either version 2 +# of the License, or (at your option) any later version. +# +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + import os import sys import unittest import wx import time import traceback -from xvfbwrapper import Xvfb -vdisplay = None - - -def setUpModule(): - vdisplay = Xvfb(width=1280, height=720) - vdisplay.start() - - -def tearDownModule(): - if vdisplay is not None: - vdisplay.stop() +import conftest +import Beremiz class UserApplicationTest(unittest.TestCase): @@ -34,7 +48,6 @@ def FinishApp(self): wx.CallAfter(self.app.frame.Close) self.app.MainLoop() - # time.sleep(0.2) self.app = None def tearDown(self): @@ -74,7 +87,7 @@ self.app = None def OpenAllProjectElements(self): - # open every object in the project tree + """Open editor for every object in the project tree""" self.app.frame.ProjectTree.ExpandAll() self.ProcessEvents() item = self.app.frame.ProjectTree.GetRootItem() @@ -106,14 +119,12 @@ [self.app.frame.CTR._Disconnect], ] - # user_actions.append([self.app.frame.OnCloseProjectMenu, None]) self.RunUIActions(user_actions) self.FinishApp() def GetProjectPath(self, project): return os.path.abspath(os.path.join(os.path.dirname(__file__), "..", project)) - # @unittest.skip("") def testStartUp(self): """Checks whether the app starts and finishes correctly""" self.StartApp() @@ -139,8 +150,4 @@ if __name__ == '__main__': - if __package__ is None: - sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))) - global Beremiz - import Beremiz unittest.main()