Ejemplo n.º 1
0
    def updateLog(self, watchPath = None):
        if not self.enableUpdate:
            return

        mode = self.comboFilter.itemData(self.comboFilter.currentIndex())

        if watchPath and self.sid is None:
            # remove path from watch to prevent multiple updates at the same time
            self.watcher.removePath(watchPath)
            # append only new lines to txtLogView
            log = snapshotlog.SnapshotLog(self.config, self.comboProfiles.currentProfileID())
            for line in log.get(mode = mode,
                                decode = self.decode,
                                skipLines = self.txtLogView.document().lineCount() - 1):
                self.txtLogView.appendPlainText(line)

            # re-add path to watch after 5sec delay
            alarm = tools.Alarm(callback = lambda: self.watcher.addPath(watchPath),
                                overwrite = False)
            alarm.start(5)

        elif self.sid is None:
            log = snapshotlog.SnapshotLog(self.config, self.comboProfiles.currentProfileID())
            self.txtLogView.setPlainText('\n'.join(log.get(mode = mode, decode = self.decode)))
        else:
            self.txtLogView.setPlainText('\n'.join(self.sid.log(mode, decode = self.decode)))
Ejemplo n.º 2
0
    def test_get(self):
        log = snapshotlog.SnapshotLog(self.cfg)

        log.append('foo bar', 1)
        log.flush()
        self.assertExists(self.logFile)
        self.assertEqual('\n'.join(log.get()), 'foo bar')
Ejemplo n.º 3
0
    def test_append(self):
        log = snapshotlog.SnapshotLog(self.cfg)

        log.append('foo', 1)
        log.flush()
        self.assertExists(self.logFile)
        with open(self.logFile, 'rt') as f:
            self.assertEqual(f.read(), 'foo\n')
Ejemplo n.º 4
0
    def test_skipLines(self):
        log = snapshotlog.SnapshotLog(self.cfg)

        for i in range(10):
            log.append(str(i), 1)
        log.flush()

        self.assertEqual('\n'.join(log.get(skipLines=4)),
                         '\n'.join([str(i) for i in range(4, 10)]))
Ejemplo n.º 5
0
    def test_get_filter(self):
        log = snapshotlog.SnapshotLog(self.cfg)

        log.append('foo bar', 1)
        log.append('[I] 123', 1)
        log.append('[C] baz', 1)
        log.append('[E] bla', 1)
        log.flush()
        self.assertTrue(os.path.exists(self.logFile))
        self.assertEqual('\n'.join(log.get(mode = snapshotlog.LogFilter.CHANGES)), 'foo bar\n[C] baz')
Ejemplo n.º 6
0
    def test_append_log_level(self):
        self.cfg.setLogLevel(2)
        log = snapshotlog.SnapshotLog(self.cfg)

        log.append('foo', 3)
        log.flush()
        self.assertNotExists(self.logFile)

        log.append('bar', 1)
        log.flush()
        self.assertExists(self.logFile)
        with open(self.logFile, 'rt') as f:
            self.assertEqual(f.read(), 'bar\n')
Ejemplo n.º 7
0
    def test_new(self):
        log = snapshotlog.SnapshotLog(self.cfg)
        now = datetime.today()
        with open(self.logFile, 'wt') as f:
            f.write('foo\nbar\n')

        log.new(now)
        log.flush()
        self.assertTrue(os.path.exists(self.logFile))
        with open(self.logFile, 'rt') as f:
            self.assertRegex(f.read(), re.compile(r'''========== Take snapshot \(profile .*\): .* ==========

''', re.MULTILINE))
Ejemplo n.º 8
0
    def test_skipLines_filtered(self):
        log = snapshotlog.SnapshotLog(self.cfg)

        log.append('foo bar', 1)
        log.append('[I] 123', 1)
        log.append('[C] baz', 1)
        log.append('[E] bla', 1)
        log.append('[C] 456', 1)
        log.append('[C] 789', 1)
        log.append('[E] qwe', 1)
        log.append('[C] asd', 1)
        log.flush()

        self.assertEqual('\n'.join(log.get(mode = snapshotlog.LogFilter.CHANGES, skipLines = 2)),
                         '[C] 456\n[C] 789\n[C] asd')
Ejemplo n.º 9
0
    def test_new_continue(self):
        log = snapshotlog.SnapshotLog(self.cfg)
        now = datetime.today()
        with open(self.logFile, 'wt') as f:
            f.write('foo\nbar\n')
        new = snapshots.NewSnapshot(self.cfg)
        new.makeDirs()
        new.saveToContinue = True

        log.new(now)
        log.flush()
        self.assertTrue(os.path.exists(self.logFile))
        with open(self.logFile, 'rt') as f:
            self.assertRegex(f.read(), re.compile(r'''foo
bar
Last snapshot didn't finish but can be continued.

======== continue snapshot \(profile .*\): .* ========

''', re.MULTILINE))