File: action_complete_test.py

package info (click to toggle)
rdiff-backup 2.2.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,640 kB
  • sloc: python: 24,129; javascript: 9,512; sh: 1,230; ansic: 580; makefile: 36
file content (89 lines) | stat: -rw-r--r-- 3,181 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
"""
Test the complete action with api version >= 201
"""
import os
import unittest

import commontest as comtst

from rdiff_backup import Globals


class ActionCompleteTest(unittest.TestCase):
    """
    Test that rdiff-backup completes properly
    """

    def test_action_complete(self):
        """test different ways of comparing directories"""

        # test the error cases
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ()),
            Globals.RET_CODE_ERR)
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "1", "--", "rdiff-backup")),
            Globals.RET_CODE_ERR)

        # then try different combinations of verbosity
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "1", "--", "rdiff-backup", "--verb"),
            return_stdout=True),
            b"""--verbosity
""")
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "2", "--", "rdiff-backup", "--verbosity", ""),
            return_stdout=True),
            os.fsencode("\n".join(map(str, range(0, 10)))) + b"\n")
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "1", "--", "rdiff-backup", "--verbosity", "5"),
            return_stdout=True),
            b"""--verbosity
""")

        # then check what happens with files
        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "2", "--", "rdiff-backup", "backup", "D"),
            return_stdout=True),
            b"""::file::
""")
        full_output = comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "2", "--", "rdiff-backup", "backup", ""),
            return_stdout=True)
        self.assertTrue(full_output.startswith(b"--"))
        self.assertTrue(full_output.endswith(b"::file::\n"))
        # we want to test the old CLI as well
        full_output = comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "1", "--", "rdiff-backup", ""),
            return_stdout=True)
        self.assertTrue(full_output.startswith(b"-V"))  # fragile!
        self.assertTrue(full_output.endswith(b"::file::\n"))
        self.assertGreater(full_output.count(b"\n"), 100)

        self.assertEqual(comtst.rdiff_backup_action(
            True, True, None, None,
            ("--api-version", "201"),
            b"complete", ("--cword", "3", "--", "rdiff-backup", "backup", "--user-mapping-file", ""),
            return_stdout=True),
            b"""::file::
""")


if __name__ == "__main__":
    unittest.main()