qubes-installer-qubes-os/anaconda/tests/gui/outside/template.py
Marek Marczykowski-Górecki 701ced5ddb anaconda: update to 22.20.13-1
Apply diff anaconda-21.48.21-1..anaconda-22.20.13-1
2016-03-22 02:27:17 +13:00

81 lines
2.7 KiB
Python

# pylint: skip-file
#
# Copyright (C) 2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Author: Chris Lumens <clumens@redhat.com>
# This code template ends up being the special suite.py file referred to in the
# Creator.makeSuite documentation. It lives in the suite disk image and is
# automatically started by the live CD on boot (see the kickstart file for where
# this happens). Basically, this is responsible for doing everything inside the
# VM - it runs the test suite, figures out whether it failed or not, puts results
# in place, and reboots.
from dogtail import utils
utils.enableA11y()
import glob
import os
import shlex
import shutil
import traceback
import unittest
class UITestSuite(unittest.TestSuite):
def run(self, *args, **kwargs):
utils.run("liveinst %(anacondaArgs)s")
unittest.TestSuite.run(self, *args, **kwargs)
def suite():
%(imports)s
s = UITestSuite()
%(addtests)s
return s
if __name__ == "__main__":
%(environ)s
s = suite()
result = unittest.TextTestRunner(verbosity=2, failfast=True).run(s)
try:
if not result.wasSuccessful():
with open("/mnt/anactest/result/unittest-failures", "w") as f:
for (where, what) in result.errors + result.failures:
f.write(str(where) + "\n" + str(what) + "\n")
f.close()
for log in glob.glob("/tmp/*.log"):
shutil.copy(log, "/mnt/anactest/result/anaconda/")
if os.path.exists("/tmp/memory.dat"):
shutil.copy("/tmp/memory.dat", "/mnt/anactest/result/anaconda/")
# anaconda writes out traceback files with restricted permissions, so
# we have to go out of our way to grab them.
for tb in glob.glob("/tmp/anaconda-tb-*"):
os.system("sudo cp " + tb + " /mnt/anactest/result/anaconda/")
except:
# If anything went wrong with the above, log it and quit. We need
# this VM to always turn off so we can inspect what happened.
with open("/mnt/anactest/result/unittest-failures", "w+") as f:
traceback.print_exc(file=f)
f.close()
os.system("poweroff")