diff options
Diffstat (limited to 'hgsshsign/tests/itest_all.py')
-rw-r--r-- | hgsshsign/tests/itest_all.py | 94 |
1 files changed, 91 insertions, 3 deletions
diff --git a/hgsshsign/tests/itest_all.py b/hgsshsign/tests/itest_all.py index 79645ad..8017077 100644 --- a/hgsshsign/tests/itest_all.py +++ b/hgsshsign/tests/itest_all.py | |||
@@ -1,18 +1,106 @@ | |||
1 | # vim:filetype=python:fileencoding=utf-8 | 1 | # vim:filetype=python:fileencoding=utf-8 |
2 | import os | ||
2 | import sys | 3 | import sys |
4 | import shutil | ||
3 | import unittest | 5 | import unittest |
4 | 6 | ||
7 | import mercurial.dispatch | ||
8 | |||
9 | from hgsshsign.tests._support import make_test_repo | ||
10 | |||
11 | |||
12 | PUBKEY = """ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeWqRjW5fHhnH/AN7DM/""" \ | ||
13 | """fBoVFehB8++SwBy6WlEK6bR1jvwBzQUuOpbb4jiv5OVK4JjYWph5HLmsbKvOrH4ZorV""" \ | ||
14 | """o7ZsFq2KlTA/G5Nqhbnj9mgBtp4FQ5rPjh7MApM8xXgVC/5ZGzTU2ygJBgf6gG99bxv""" \ | ||
15 | """spN1dCEWYwlIRd33Fp1flBcATGp8Yyt6ERtgqCwsM/T4V0qFSMUH1guRg5jT3LxdDew""" \ | ||
16 | """p1V1oj5BlZGPZYKX1HqpOUMDFqzrESJjiDIuHy4ltiWLQNxGY6udLp9srmjsWp4LiTK""" \ | ||
17 | """/BUf0m46qR83zJpaFfCdagi2tLH/zQAK21TMrVJQcjKry+dLT/OJIZ dummy@localhost""" | ||
18 | PRIVKEY = """\ | ||
19 | "dummy@localhost" RSA private key | ||
20 | This key has no passphrase and is intended for testing | ||
21 | purposes only. | ||
22 | |||
23 | -----BEGIN RSA PRIVATE KEY----- | ||
24 | MIIEogIBAAKCAQEAnlqkY1uXx4Zx/wDewzP3waFRXoQfPvksAculpRCum0dY78Ac | ||
25 | 0FLjqW2+I4r+TlSuCY2FqYeRy5rGyrzqx+GaK1aO2bBatipUwPxuTaoW54/ZoAba | ||
26 | eBUOaz44ezAKTPMV4FQv+WRs01NsoCQYH+oBvfW8b7KTdXQhFmMJSEXd9xadX5QX | ||
27 | AExqfGMrehEbYKgsLDP0+FdKhUjFB9YLkYOY09y8XQ3sKdVdaI+QZWRj2WCl9R6q | ||
28 | TlDAxas6xEiY4gyLh8uJbYli0DcRmOrnS6fbK5o7FqeC4kyvwVH9JuOqkfN8yaWh | ||
29 | XwnWoItrSx/80ACttUzK1SUHIyq8vnS0/ziSGQIDAQABAoIBAEnMGDwtnUhhAZND | ||
30 | ho0WFOpqEY+opx8j5DxZ+bI5WgYHdA0XTNZRKsP03t2VkvpSQGE3UQk2ot1uHiKx | ||
31 | dAD+xGhaCGyu4Tdv9tuRSJ5tHAuCYHtRdlLsDTIxZwUR2FsQFivbUBg7kvPRNxhS | ||
32 | eeO1nGY4tT6gzFO6cQkL0nGaDd1uMvAu1zENBWAtH7iZyJ5u+GEdlmWs7GTUb0lu | ||
33 | vURjy1iqJTP4tDQtVpQexLeypOKlL89vaPoLQjw6bxxc8uujUXkEbBy0gjSaivSu | ||
34 | qgWnoTF64tuYHhDFm9zzQXTPJ6nQRz7Mxa9mkrPyL/955fvKxHyAlXl+HQnXbE97 | ||
35 | Uk4M09kCgYEAy49rVd5uHpaGPFLLEBYSmiSGklXjuNY3sHH3zHk2hVgaxCQt6u1U | ||
36 | 5pSPMwsnk0VXtf0B+YSLoxwZNS726Z/TiJ2iPFoQmYY920IgtB9tJ5wpq76Zkmzo | ||
37 | MheRV4e5D9ZWRwOZjQtUlu1TAgvsbEeGcelvNlNzjPYKFt68+Q4uG+cCgYEAxyXs | ||
38 | tjQFkgtcBXwvuKTcW234Y/+lqKK0cVLpzsBQ1VpaCQBy55BGPLZrNck4If0+cZCe | ||
39 | cF6UjH3+5Dd1Q23SxsNryyn2sQoHsys1B5nZyGNvHYwZDnmep+uB7h/oRB95/0hA | ||
40 | YN56ATNFhViISxmctuHeEQK+lQP38bSr3f5+If8CgYA16iCVt7oW4+td4tfhxNbc | ||
41 | eLwj2hfchvBtDWKCh8BHBRThymtXA9Eu2T4sWNH8kasvinmRaufJJdIPYgcHzcsr | ||
42 | LgUgUwJ+hy2u+w7KZmB000m+MVdfjvTY/6EBO/NqHGzxliR/VPbsmqMXsazG6RLU | ||
43 | 7O0FyIicVzZI5GnM1VKlFQKBgEFMhSZlPmJZyS2fP8KKhBqSn3yiib4Ww5XY+wMo | ||
44 | +hhLDPSgqgyVuQIVSmgTd41ljUENi3YK/Shn89j++jtG2nMEBudR9iqswEOWakf4 | ||
45 | wXk8aWXF1z1w0X378dmTqsQTkhwLo9hfep/EIQqNMft2BXXN79OiE72m1Hjzpdsf | ||
46 | pFofAoGARtxV/WP0nK9aHQQSPPmXB8C+15s4fTCV0krAPj2L5mOB/V63XOJ77IUB | ||
47 | 1MXm6iFwsteyQsEJVeP03S1ToRurMXxw6nlkRPP2M5flYCT1EapqduI9dfXnlhu/ | ||
48 | ea7iH7LLWTDQ5X97VHu8WTQLSZfH2vT7vuOG5V4R3wOj7rQh6n0= | ||
49 | -----END RSA PRIVATE KEY----- | ||
50 | """ | ||
51 | |||
5 | 52 | ||
6 | class TestHgSSHSign(unittest.TestCase): | 53 | class TestHgSSHSign(unittest.TestCase): |
54 | _orig_dir = '' | ||
55 | _tmp_repo = '' | ||
56 | _tmpdir = '' | ||
57 | _public_key = '' | ||
58 | _private_key = '' | ||
59 | |||
60 | _orig_env = os.environ.copy() | ||
61 | _testenv = None | ||
7 | 62 | ||
8 | def setUp(self): | 63 | def setUp(self): |
9 | pass | 64 | self._orig_dir = os.getcwd() |
65 | |||
66 | self._tmpdir, self._tmp_repo = make_test_repo() | ||
67 | self._public_key = os.path.join(self._tmpdir, 'id_rsa.pub') | ||
68 | self._private_key = os.path.join(self._tmpdir, 'id_rsa') | ||
69 | |||
70 | pubkey = open(self._public_key, 'w') | ||
71 | pubkey.write(PUBKEY) | ||
72 | pubkey.close() | ||
73 | |||
74 | privkey = open(self._private_key, 'w') | ||
75 | privkey.write(PRIVKEY) | ||
76 | privkey.close() | ||
77 | |||
78 | self._testenv = self._orig_env.copy() | ||
79 | if 'SSH_AUTH_SOCK' in self._testenv: | ||
80 | self._testenv.pop('SSH_AUTH_SOCK') | ||
81 | |||
82 | sys._real_argv = sys.argv | ||
83 | sys.argv = ['hg', '--config', 'sshsign.public_key=' + self._public_key, | ||
84 | '--config', 'extensions.hgsshsign='] | ||
85 | |||
86 | os.chdir(self._tmp_repo) | ||
10 | 87 | ||
11 | def tearDown(self): | 88 | def tearDown(self): |
12 | pass | 89 | os.chdir(self._orig_dir) |
90 | os.environ = self._orig_env | ||
91 | |||
92 | if self._tmpdir: | ||
93 | shutil.rmtree(self._tmpdir) | ||
94 | |||
95 | sys.argv = sys._real_argv | ||
13 | 96 | ||
14 | def test_sign_simple_case(self): | 97 | def test_sign_simple_case(self): |
15 | pass | 98 | try: |
99 | sys.argv.append('sshsign') | ||
100 | mercurial.dispatch.run() | ||
101 | except ValueError: | ||
102 | # in reality, this is an XFAIL for now | ||
103 | pass | ||
16 | 104 | ||
17 | 105 | ||
18 | def tests(): | 106 | def tests(): |