~roadmr/ubuntu/precise/checkbox/0.13.1

« back to all changes in this revision

Viewing changes to checkbox/registries/command.py

  • Committer: Bazaar Package Importer
  • Author(s): Marc Tardif, Gabor Keleman
  • Date: 2009-08-19 15:36:05 UTC
  • Revision ID: james.westby@ubuntu.com-20090819153605-weo6htup3yi6zn0t
Tags: 0.8~alpha4
* New upstream version:
  * Changed icon.
  * Added timeout property to lock_prompt plugin.
  * Added concept of attachments to tests.
  * Added support for backslahes in templates to wrap lines.
  * Added support blacklisting and whitelisting both tests and suites.
  * Introduced the concept of jobs for suites, tests and attachments.
  * Removed upstart event which is no longer needed.
  * Replaced architecture and category with requires in test definitions.
* Fixed pygst dependency (LP: #334442)
* Fixed configuration file updates during install (LP: #330596)
* Fixed and expanded translations (LP: #347038)
* Fixed ignored system proxy settings (LP: #345548)
* Fixed parsing blank lines in templates (LP: #393907)
* Fixed escaping of lists (LP: #394001)
* Fixed timeout in manual tests (LP: #377986)
* Fixed CLI interface dialog.
* Fixed support for FreeDesktop XDG base directory specification (LP: #363549)
* Added general and package specific apport hooks

[ Gabor Keleman ]
* Fixed untranslated strings in tests (LP: #374666)
* Fixed untranslated last screen (LP: #374646)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#
19
19
import logging
20
20
 
21
 
from checkbox.lib.process import Process
 
21
from checkbox.lib.cache import cache
22
22
 
23
23
from checkbox.frontend import frontend
24
 
from checkbox.properties import String
 
24
from checkbox.job import Job
 
25
from checkbox.properties import Int, String
25
26
from checkbox.registry import Registry
26
27
 
27
28
 
35
36
 
36
37
    command = String()
37
38
 
 
39
    timeout = Int(required=False)
 
40
 
38
41
    def __init__(self, command=None):
39
42
        super(CommandRegistry, self).__init__()
40
43
        if command is not None:
43
46
    @frontend("get_registry")
44
47
    def __str__(self):
45
48
        logging.info("Running command: %s", self.command)
46
 
        process = Process(self.command)
47
 
        while process.read():
48
 
            pass
49
 
 
50
 
        if process.errdata:
51
 
            logging.error("Failed to run command: %s", process.errdata.strip())
52
 
        return process.outdata
53
 
 
 
49
        job = Job(self.command, timeout=self.timeout)
 
50
        job.execute()
 
51
        return job.data
 
52
 
 
53
    @cache
54
54
    def items(self):
55
55
        # Force running the command
56
56
        item = str(self)