~ubuntu-branches/ubuntu/lucid/checkbox/lucid

« back to all changes in this revision

Viewing changes to checkbox/registries/directory.py

  • Committer: Bazaar Package Importer
  • Author(s): Dave Murphy, Dave Murphy, Andy Whitcroft
  • Date: 2009-03-17 09:46:16 UTC
  • Revision ID: james.westby@ubuntu.com-20090317094616-1p1ifmdy702ilpl9
Tags: 0.7
[ Dave Murphy ]
* Fixed viewing of report files in Firefox 3 (LP: #331481)
* Added additional contextual information
 * /etc/sysctl* (LP: #331055)
 * /etc/modprobe.d (LP: #331056)
 * /etc/modules (LP: #331057)
* Fixed packaging for Jaunty
 * https://lists.ubuntu.com/archives/ubuntu-devel/2009-February/027439.html
 * Uses --install-layout=deb
 * Installs to dist-packages instead of site-packages

[ Andy Whitcroft ]
* suspend_test: update suspend_test to version V6 matching kernel version.
  The version here will become the master copy.
* suspend_test: add a --dry-run mode to simplify developement
* suspend_test: add a automation mode for checkbox integration
* suspend_test: add a new pm-suspend test
* suspend_test: record and restore timer_delay around the variable
  time test.
* suspend_test: release v7.
* suspend_test: initial version of suspend power consumption test
  from a patch by Pete Graner.
* suspend_test: power -- made the sleep time configurable
* suspend_test: detect batteries and disable ac/power tests
* suspend_test: disable dbus tests when we have no primary user
* suspend_test: handle AC transitions better
* suspend_test: enable power test as part of --full
* suspend_test: reduce the noise in the test instructions
* suspend_test: use minutes in output when that is more appropriate
* suspend_test: track actual AC transitions and report them
* suspend_test: only mention AC at all if we have a battery
* suspend_test: report useful data at the bottom for posting
* suspend_test: document the new power test in the usage
* suspend_test: power -- indicate when the result is unreliable
* suspend_test: report -- fix up spacing issues
* suspend_test: release v8

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
import os
20
20
import logging
21
21
 
22
 
from checkbox.properties import String
 
22
from checkbox.properties import Path
23
23
from checkbox.registry import Registry
24
24
 
25
25
 
32
32
    Subclasses should define a directory parameter.
33
33
    """
34
34
 
35
 
    directory = String(required=False)
 
35
    directory = Path()
36
36
 
37
37
    def __init__(self, directory=None):
38
38
        super(DirectoryRegistry, self).__init__()
39
 
        self._directory = directory or self.directory
 
39
        if directory is not None:
 
40
            self.directory = directory
40
41
 
41
42
    def __str__(self):
42
 
        logging.info("Reading directory: %s", self._directory)
43
 
        return "\n".join(os.listdir(self._directory))
 
43
        logging.info("Reading directory: %s", self.directory)
 
44
        return "\n".join(os.listdir(self.directory))
44
45
 
45
46
    def items(self):
46
47
        return []
 
48
 
 
49
 
 
50
class RecursiveDirectoryRegistry(DirectoryRegistry):
 
51
    """Variant of the DirectoryRegistry that recurses into subdirectories."""
 
52
 
 
53
    def __str__(self):
 
54
        logging.info("Reading directory: %s", self.directory)
 
55
        return "\n".join(self._listdir(self.directory))
 
56
 
 
57
    def _listdir(self, root, path=""):
 
58
        files = []
 
59
        try:
 
60
            for file in os.listdir(os.path.join(root, path)):
 
61
                pathname = os.path.join(path, file)
 
62
                if os.path.isdir(os.path.join(root, pathname)):
 
63
                    files.extend(self._listdir(root, pathname))
 
64
                else:
 
65
                    files.append(pathname)
 
66
        except OSError:
 
67
            pass
 
68
        return files