summaryrefslogtreecommitdiff
path: root/hgsshsign/tests/itest_all.py
blob: 8017077c3346c843ef6df46868ad6e71cf9812b3 (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# vim:filetype=python:fileencoding=utf-8
import os
import sys
import shutil
import unittest

import mercurial.dispatch

from hgsshsign.tests._support import make_test_repo


PUBKEY = """ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeWqRjW5fHhnH/AN7DM/""" \
"""fBoVFehB8++SwBy6WlEK6bR1jvwBzQUuOpbb4jiv5OVK4JjYWph5HLmsbKvOrH4ZorV""" \
"""o7ZsFq2KlTA/G5Nqhbnj9mgBtp4FQ5rPjh7MApM8xXgVC/5ZGzTU2ygJBgf6gG99bxv""" \
"""spN1dCEWYwlIRd33Fp1flBcATGp8Yyt6ERtgqCwsM/T4V0qFSMUH1guRg5jT3LxdDew""" \
"""p1V1oj5BlZGPZYKX1HqpOUMDFqzrESJjiDIuHy4ltiWLQNxGY6udLp9srmjsWp4LiTK""" \
"""/BUf0m46qR83zJpaFfCdagi2tLH/zQAK21TMrVJQcjKry+dLT/OJIZ dummy@localhost"""
PRIVKEY = """\
"dummy@localhost" RSA private key
This key has no passphrase and is intended for testing
purposes only.

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAnlqkY1uXx4Zx/wDewzP3waFRXoQfPvksAculpRCum0dY78Ac
0FLjqW2+I4r+TlSuCY2FqYeRy5rGyrzqx+GaK1aO2bBatipUwPxuTaoW54/ZoAba
eBUOaz44ezAKTPMV4FQv+WRs01NsoCQYH+oBvfW8b7KTdXQhFmMJSEXd9xadX5QX
AExqfGMrehEbYKgsLDP0+FdKhUjFB9YLkYOY09y8XQ3sKdVdaI+QZWRj2WCl9R6q
TlDAxas6xEiY4gyLh8uJbYli0DcRmOrnS6fbK5o7FqeC4kyvwVH9JuOqkfN8yaWh
XwnWoItrSx/80ACttUzK1SUHIyq8vnS0/ziSGQIDAQABAoIBAEnMGDwtnUhhAZND
ho0WFOpqEY+opx8j5DxZ+bI5WgYHdA0XTNZRKsP03t2VkvpSQGE3UQk2ot1uHiKx
dAD+xGhaCGyu4Tdv9tuRSJ5tHAuCYHtRdlLsDTIxZwUR2FsQFivbUBg7kvPRNxhS
eeO1nGY4tT6gzFO6cQkL0nGaDd1uMvAu1zENBWAtH7iZyJ5u+GEdlmWs7GTUb0lu
vURjy1iqJTP4tDQtVpQexLeypOKlL89vaPoLQjw6bxxc8uujUXkEbBy0gjSaivSu
qgWnoTF64tuYHhDFm9zzQXTPJ6nQRz7Mxa9mkrPyL/955fvKxHyAlXl+HQnXbE97
Uk4M09kCgYEAy49rVd5uHpaGPFLLEBYSmiSGklXjuNY3sHH3zHk2hVgaxCQt6u1U
5pSPMwsnk0VXtf0B+YSLoxwZNS726Z/TiJ2iPFoQmYY920IgtB9tJ5wpq76Zkmzo
MheRV4e5D9ZWRwOZjQtUlu1TAgvsbEeGcelvNlNzjPYKFt68+Q4uG+cCgYEAxyXs
tjQFkgtcBXwvuKTcW234Y/+lqKK0cVLpzsBQ1VpaCQBy55BGPLZrNck4If0+cZCe
cF6UjH3+5Dd1Q23SxsNryyn2sQoHsys1B5nZyGNvHYwZDnmep+uB7h/oRB95/0hA
YN56ATNFhViISxmctuHeEQK+lQP38bSr3f5+If8CgYA16iCVt7oW4+td4tfhxNbc
eLwj2hfchvBtDWKCh8BHBRThymtXA9Eu2T4sWNH8kasvinmRaufJJdIPYgcHzcsr
LgUgUwJ+hy2u+w7KZmB000m+MVdfjvTY/6EBO/NqHGzxliR/VPbsmqMXsazG6RLU
7O0FyIicVzZI5GnM1VKlFQKBgEFMhSZlPmJZyS2fP8KKhBqSn3yiib4Ww5XY+wMo
+hhLDPSgqgyVuQIVSmgTd41ljUENi3YK/Shn89j++jtG2nMEBudR9iqswEOWakf4
wXk8aWXF1z1w0X378dmTqsQTkhwLo9hfep/EIQqNMft2BXXN79OiE72m1Hjzpdsf
pFofAoGARtxV/WP0nK9aHQQSPPmXB8C+15s4fTCV0krAPj2L5mOB/V63XOJ77IUB
1MXm6iFwsteyQsEJVeP03S1ToRurMXxw6nlkRPP2M5flYCT1EapqduI9dfXnlhu/
ea7iH7LLWTDQ5X97VHu8WTQLSZfH2vT7vuOG5V4R3wOj7rQh6n0=
-----END RSA PRIVATE KEY-----
"""


class TestHgSSHSign(unittest.TestCase):
    _orig_dir = ''
    _tmp_repo = ''
    _tmpdir = ''
    _public_key = ''
    _private_key = ''

    _orig_env = os.environ.copy()
    _testenv = None

    def setUp(self):
        self._orig_dir = os.getcwd()

        self._tmpdir, self._tmp_repo = make_test_repo()
        self._public_key = os.path.join(self._tmpdir, 'id_rsa.pub')
        self._private_key = os.path.join(self._tmpdir, 'id_rsa')

        pubkey = open(self._public_key, 'w')
        pubkey.write(PUBKEY)
        pubkey.close()

        privkey = open(self._private_key, 'w')
        privkey.write(PRIVKEY)
        privkey.close()

        self._testenv = self._orig_env.copy()
        if 'SSH_AUTH_SOCK' in self._testenv:
            self._testenv.pop('SSH_AUTH_SOCK')

        sys._real_argv = sys.argv
        sys.argv = ['hg', '--config', 'sshsign.public_key=' + self._public_key,
                    '--config', 'extensions.hgsshsign=']

        os.chdir(self._tmp_repo)

    def tearDown(self):
        os.chdir(self._orig_dir)
        os.environ = self._orig_env

        if self._tmpdir:
            shutil.rmtree(self._tmpdir)

        sys.argv = sys._real_argv

    def test_sign_simple_case(self):
        try:
            sys.argv.append('sshsign')
            mercurial.dispatch.run()
        except ValueError:
            # in reality, this is an XFAIL for now
            pass


def tests():
    unittest.main()
    return 0


if __name__ == '__main__':
    sys.exit(tests())