aboutsummaryrefslogtreecommitdiff
path: root/gitosis/test/test_init.py
blob: dcfa3bfe74a18fc525e6df96b1d70886a9280eb1 (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
from nose.tools import eq_ as eq
from gitosis.test.util import assert_raisesmaketemp
 
import os
 
from gitosis import init
from gitosis import repository
from gitosis.configutil import GitosisRawConfigParser
 
from gitosis.test import util
 
def test_init_admin_repository():
    tmp = maketemp()
    admin_repository = os.path.join(tmp'admin.git')
    pubkey = (
        'ssh-somealgo '
        +'0123456789ABCDEFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
        +'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
        +'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
        +'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= fakeuser@fakehost')
    user = 'jdoe'
    cfg = GitosisRawConfigParser()
    init.init_admin_repository(
        git_dir=admin_repository,
        pubkey=pubkey,
        user=user,
        config=cfg,
        )
    eq(os.listdir(tmp)['admin.git'])
    hook = os.path.join(
        tmp,
        'admin.git',
        'hooks',
        'post-update',
        )
    util.check_mode(hook0755is_file=True)
    got = util.readFile(hook).splitlines()
    assert 'gitosis-run-hook post-update' in got
    export_dir = os.path.join(tmp'export')
    repository.export(git_dir=admin_repository,
                      path=export_dir)
    eq(sorted(os.listdir(export_dir)),
       sorted(['gitosis.conf', 'keydir']))
    eq(os.listdir(os.path.join(export_dir'keydir')),
       ['jdoe.pub'])
    got = util.readFile(
        os.path.join(export_dir'keydir''jdoe.pub'))
    eq(gotpubkey)
    # the only thing guaranteed of initial config file ordering is 
    # that [gitosis] is first 
    got = util.readFile(os.path.join(export_dir'gitosis.conf'))
    # We can't gaurentee this anymore 
    got = got.splitlines()[0]
    eq(got'[gitosis]')
    cfg.read(os.path.join(export_dir'gitosis.conf'))
    eq(sorted(cfg.sections()),
       sorted([ 
        'gitosis', 
        'group gitosis-admin', 
        ]))
    eq(cfg.items('gitosis')[])
    eq(sorted(cfg.items('group gitosis-admin')),
       sorted([ 
        ('writable''gitosis-admin'), 
        ('members''jdoe'), 
        ]))