~ed.so/duplicity/reuse-passphrase-for-signing-fix

« back to all changes in this revision

Viewing changes to testing/logtest.py

  • Committer: loafman
  • Date: 2008-11-12 13:13:04 UTC
  • Revision ID: vcs-imports@canonical.com-20081112131304-pftb3576mp6uuhqc
patch #6670: Machine Readable Output
https://savannah.nongnu.org/patch/?6670

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- Mode: Python; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 4 -*-
 
2
#
 
3
# Copyright 2008 Michael Terry <mike@mterry.name>
 
4
#
 
5
# This file is part of duplicity.
 
6
#
 
7
# Duplicity is free software; you can redistribute it and/or modify it
 
8
# under the terms of the GNU General Public License as published by the
 
9
# Free Software Foundation; either version 3 of the License, or (at your
 
10
# option) any later version.
 
11
#
 
12
# Duplicity is distributed in the hope that it will be useful, but
 
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
# General Public License for more details.
 
16
#
 
17
# You should have received a copy of the GNU General Public License
 
18
# along with duplicity; if not, write to the Free Software Foundation,
 
19
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
20
 
 
21
import unittest
 
22
import os
 
23
 
 
24
class LogTest(unittest.TestCase):
 
25
    """Test machine-readable functions/classes in log.py"""
 
26
    
 
27
    duplicity_bin = "../duplicity-bin"
 
28
 
 
29
    def test_command_line_error(self):
 
30
        """Check notification of a simple error code"""
 
31
        
 
32
        # Run actual duplicity command (will fail, because no arguments passed)
 
33
        os.system("%s --log-file=/tmp/duplicity.log >/dev/null 2>&1" % self.duplicity_bin)
 
34
        
 
35
        # The format of the file should be:
 
36
        # """ERROR 2
 
37
        # . Blah blah blah.
 
38
        # . Blah blah blah.
 
39
        # 
 
40
        # """
 
41
        f = open('/tmp/duplicity.log', 'r')
 
42
        linecount = 0
 
43
        lastline = False
 
44
        for line in f:
 
45
            assert(not lastline)
 
46
            linecount += 1
 
47
            if linecount == 1:
 
48
                assert(line == "ERROR 2\n")
 
49
            elif line != "\n":
 
50
                assert(line.startswith(". "))
 
51
            else:
 
52
                lastline = True
 
53
        assert(lastline)
 
54
 
 
55
 
 
56
if __name__ == "__main__":
 
57
    unittest.main()