def setUp(self):
        dir = os.path.dirname(__file__)
        self.file = os.path.join(dir, 'watcher', 'test.txt')

        factory = Mock()
        factory.factory = MagicMock(return_value='return')

        self.watcher = CoverageWatcher(self.file, factory)
        self.detected = threading.Event()
        self.delete()
Beispiel #2
0
    def add(self, view):
        """
        Sets up a watcher for a newly opened view.
        """
        if not config.watch_report:
            return

        # find coverage file for the view's file
        filename = view.file_name()

        if filename is None:
            return

        if not self.matcher.should_include(filename):
            debug_message("Ignoring excluded file '%s'" % filename)
            return

        coverage = self.coverage_finder.find(filename)

        # nothing can be done if the coverage file can't be found
        if not coverage:
            return

        # ensure a CoverageWatcher exists for the coverage file
        if not coverage in self.watchers:
            debug_message("Creating CoverageWatcher for " + coverage)
            self.watchers[coverage] = CoverageWatcher(coverage)
        else:
            debug_message("Found existing CoverageWatcher for " + coverage)

        watcher = self.watchers[coverage]

        # add callbacks as defined at construction time, also adding in
        # the relevant view as a parameter to the callback
        for event, callback in self.callbacks.items():
            wrapped = self.prepare_callback(callback, view)
            watcher.add_callback(event, view.id(), wrapped)

        # start the watcher if it's not already running
        if not watcher.is_alive():
            debug_message("Starting CoverageWatcher for " + coverage)
            watcher.start()