2
# This file is part of Checkbox.
4
# Copyright 2008 Canonical Ltd.
6
# Checkbox is free software: you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation, either version 3 of the License, or
9
# (at your option) any later version.
11
# Checkbox is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
# GNU General Public License for more details.
16
# You should have received a copy of the GNU General Public License
17
# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
19
from gettext import gettext as _
21
from checkbox.job import Job, UNINITIATED
22
from checkbox.plugin import Plugin
25
class ShellTest(Plugin):
27
def register(self, manager):
28
super(ShellTest, self).register(manager)
31
("prompt-shell", self.prompt_shell),
32
("report-shell", self.report_shell)]:
33
self._manager.reactor.call_on(rt, rh)
35
def prompt_shell(self, interface, test):
36
command = test.get("command")
37
status = test.get("status", UNINITIATED)
38
if command and status == UNINITIATED:
39
job = Job(command, test.get("environ"), test.get("timeout"))
40
interface.show_wait(_("Running shell tests..."),
42
test["data"] = job.data
43
test["duration"] = job.duration
44
test["status"] = job.status
46
def report_shell(self, test):
47
self._manager.reactor.fire("report-test", test)