Example #1
0
 def test_ignore_nonpub(self):
     tmp = maketemp()
     keydir = os.path.join(tmp, "ignore_dot")
     mkdir(keydir)
     writeFile(os.path.join(keydir, "jdoe.xub"), KEY_1 + "\n")
     gen = ssh.readKeys(keydir=keydir)
     assert_raises(StopIteration, gen.next)
Example #2
0
    def test_simple(self):
        tmp = maketemp()

        authorized_keys = path.join(tmp, 'authorized_keys')

        with open(authorized_keys, 'w') as f:
            f.write('''\
# foo
bar
### autogenerated by gitosis, DO NOT EDIT
command="PATH=/opt/local/bin /foo/bar/baz/gitosis-serve wsmith",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %s
baz''' % KEY_2)

        keydir = path.join(tmp, 'one')

        mkdir(keydir)

        # okay so we write the key into a file in keyir
        with open(path.join(keydir, 'jdoe.pub'), 'w') as f:
            f.write(KEY_1 + '\n')

        ssh.writeAuthorizedKeys(authorized_keys, keydir)

        got = readFile(authorized_keys)

        eq(got, '''\
# foo
bar
baz
### autogenerated by gitosis, DO NOT EDIT
command="PATH=/opt/local/bin gitosis-serve jdoe",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %s''' % KEY_1)
Example #3
0
    def test_simple(self):
        tmp = maketemp()
        path = os.path.join(tmp, 'authorized_keys')
        f = file(path, 'w')
        try:
            f.write('''\
# foo
bar
### autogenerated by gitosis, DO NOT EDIT
command="/foo/bar/baz/gitosis-serve wsmith",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %(key_2)s
baz
''' % dict(key_2=KEY_2))
        finally:
            f.close()
        keydir = os.path.join(tmp, 'one')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'), KEY_1 + '\n')

        ssh.writeAuthorizedKeys(path=path, keydir=keydir)

        got = readFile(path)
        eq(
            got, '''\
# foo
bar
baz
### autogenerated by gitosis, DO NOT EDIT
command="gitosis-serve jdoe",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %(key_1)s
''' % dict(key_1=KEY_1))
Example #4
0
 def test_ignore_nonpub(self):
     tmp = maketemp()
     keydir = path.join(tmp, 'ignore_dot')
     mkdir(keydir)
     writeFile(path.join(keydir, 'jdoe.xub'), KEY_1+'\n')
     gen = ssh.readKeys(keydir=keydir)
     assert_raises(StopIteration, gen.next)
Example #5
0
 def test_ignore_nonpub(self):
     tmp = maketemp()
     keydir = os.path.join(tmp, 'ignore_dot')
     mkdir(keydir)
     writeFile(os.path.join(keydir, 'jdoe.xub'), KEY_1 + '\n')
     gen = ssh.readKeys(keydir=keydir)
     assert_raises(StopIteration, gen.__next__)
Example #6
0
    def test_multiple_lines(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, "keys")
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jd"oe.pub'), KEY_1 + "\n")

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset(gen)
        eq(got, frozenset([]))
Example #7
0
def test_init_exist_dir():
    tmp = maketemp()
    path = os.path.join(tmp, 'repo.git')
    mkdir(path, 0o710)
    check_mode(path, 0o710, is_dir=True)
    repository.init(path)
    # my weird access mode is preserved
    check_mode(path, 0o710, is_dir=True)
    check_bare(path)
Example #8
0
    def test_one(self):
        tmp = maketemp()
        keydir = path.join(tmp, 'one')
        mkdir(keydir)
        writeFile(path.join(keydir, 'jdoe.pub'), KEY_1+'\n')

        gen = ssh.readKeys(keydir=keydir)
        eq(gen.next(), ('jdoe', KEY_1))
        assert_raises(StopIteration, gen.next)
Example #9
0
    def test_one(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, 'one')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'), KEY_1 + '\n')

        gen = ssh.readKeys(keydir=keydir)
        eq(next(gen), ('jdoe', KEY_1))
        assert_raises(StopIteration, gen.__next__)
Example #10
0
    def test_multiple_lines(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, 'keys')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jd"oe.pub'), KEY_1 + '\n')

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset(gen)
        eq(got, frozenset([]))
Example #11
0
    def test_one(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, "one")
        mkdir(keydir)
        writeFile(os.path.join(keydir, "jdoe.pub"), KEY_1 + "\n")

        gen = ssh.readKeys(keydir=keydir)
        eq(gen.next(), ("jdoe", KEY_1))
        assert_raises(StopIteration, gen.next)
Example #12
0
def test_init_exist_dir():
    tmp = maketemp()
    path = os.path.join(tmp, 'repo.git')
    mkdir(path, 0710)
    check_mode(path, 0710, is_dir=True)
    repository.init(path)
    # my weird access mode is preserved
    check_mode(path, 0710, is_dir=True)
    check_bare(path)
Example #13
0
def test_projectsList_reallyEndsWithGit():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'gitweb', 'yes')
    eq(gitweb.generate_project_list(cfg), ['foo.git'])
Example #14
0
    def test_bad_filename(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, "two")
        mkdir(keydir)
        writeFile(os.path.join(keydir, "jdoe.pub"), KEY_1 + "\n" + KEY_2 + "\n")

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset(gen)

        eq(got, frozenset([("jdoe", KEY_1), ("jdoe", KEY_2)]))
Example #15
0
    def test_one(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, 'one')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'), KEY_1+'\n')

        gen = ssh.readKeys(keydir=keydir)
        (who, key) = gen.next()
        eq(who, 'jdoe')
        eq(key.full_key, KEY_1)
        assert_raises(StopIteration, gen.next)
Example #16
0
def test_description_not_set():
    tmp = maketemp()
    path = os.path.join(tmp, "foo.git")
    mkdir(path)
    writeFile(os.path.join(path, "description"), "i was here first\n")
    cfg = RawConfigParser()
    cfg.add_section("gitosis")
    cfg.set("gitosis", "repositories", tmp)
    cfg.add_section("repo foo")
    gitweb.set_descriptions(config=cfg)
    got = readFile(os.path.join(path, "description"))
    eq(got, "i was here first\n")
Example #17
0
def test_description_none():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'description', 'foodesc')
    gitweb.set_descriptions(config=cfg, )
    got = readFile(os.path.join(path, 'description'))
    eq(got, 'foodesc\n')
Example #18
0
def test_projectsList_path():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'gitweb', 'yes')
    projects_list = os.path.join(tmp, 'projects.list')
    gitweb.write_project_list(cfg, projects_list)
    got = readFile(projects_list)
    eq(got, 'foo.git')
Example #19
0
def test_description_default():
    tmp = maketemp()
    path = os.path.join(tmp, "foo.git")
    mkdir(path)
    writeFile(os.path.join(path, "description"), "Unnamed repository; edit this file to name it for gitweb.\n")
    cfg = RawConfigParser()
    cfg.add_section("gitosis")
    cfg.set("gitosis", "repositories", tmp)
    cfg.add_section("repo foo")
    cfg.set("repo foo", "description", "foodesc")
    gitweb.set_descriptions(config=cfg)
    got = readFile(os.path.join(path, "description"))
    eq(got, "foodesc\n")
Example #20
0
def test_projectsList_reallyEndsWithGit():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'gitweb', 'yes')
    got = StringIO()
    gitweb.generate_project_list_fp(config=cfg, fp=got)
    eq(got.getvalue(), '''\
foo.git
''')
Example #21
0
    def test_bad_filename(self):
        tmp = maketemp()
        keydir = path.join(tmp, 'two')
        mkdir(keydir)
        writeFile(path.join(keydir, 'jdoe.pub'), KEY_1+'\n'+KEY_2+'\n')

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset(gen)

        eq(got,
           frozenset([
            ('jdoe', KEY_1),
            ('jdoe', KEY_2),
            ]))
Example #22
0
    def test_bad_filename(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, 'two')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'),
                  KEY_1 + '\n' + KEY_2 + '\n')

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset(gen)

        eq(got, frozenset([
            ('jdoe', KEY_1),
            ('jdoe', KEY_2),
        ]))
Example #23
0
def test_description_none():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'description', 'foodesc')
    gitweb.set_descriptions(
        config=cfg,
        )
    got = readFile(os.path.join(path, 'description'))
    eq(got, 'foodesc\n')
Example #24
0
    def test_two(self):
        tmp = maketemp()
        keydir = os.path.join(tmp, 'two')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'), KEY_1+'\n')
        writeFile(os.path.join(keydir, 'wsmith.pub'), KEY_2+'\n')

        gen = ssh.readKeys(keydir=keydir)
        got = frozenset( (i, j.full_key) for (i, j) in gen)

        eq(got,
           frozenset([
            ('jdoe', KEY_1),
            ('wsmith', KEY_2),
            ]))
Example #25
0
def test_projectsList_path():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'gitweb', 'yes')
    projects_list = os.path.join(tmp, 'projects.list')
    gitweb.generate_project_list(config=cfg, path=projects_list)
    got = readFile(projects_list)
    eq(got, '''\
foo.git
''')
Example #26
0
def test_projectsList_reallyEndsWithGit():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'gitweb', 'yes')
    got = StringIO()
    gitweb.generate_project_list_fp(
        config=cfg,
        fp=got)
    eq(got.getvalue(), '''\
foo.git
''')
Example #27
0
def test_description_default():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    writeFile(
        os.path.join(path, 'description'),
        'Unnamed repository; edit this file to name it for gitweb.\n',
    )
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'description', 'foodesc')
    gitweb.set_descriptions(config=cfg, )
    got = readFile(os.path.join(path, 'description'))
    eq(got, 'foodesc\n')
Example #28
0
def test_projectsList_reallyEndsWithGit():
    tmp = maketemp()
    path = os.path.join(tmp, "foo.git")
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section("gitosis")
    cfg.set("gitosis", "repositories", tmp)
    cfg.add_section("repo foo")
    cfg.set("repo foo", "gitweb", "yes")
    got = StringIO()
    gitweb.generate_project_list_fp(config=cfg, fp=got)
    eq(
        got.getvalue(),
        """\
foo.git
""",
    )
Example #29
0
def test_description_default():
    tmp = maketemp()
    path = os.path.join(tmp, 'foo.git')
    mkdir(path)
    writeFile(
        os.path.join(path, 'description'),
        'Unnamed repository; edit this file to name it for gitweb.\n',
        )
    cfg = RawConfigParser()
    cfg.add_section('gitosis')
    cfg.set('gitosis', 'repositories', tmp)
    cfg.add_section('repo foo')
    cfg.set('repo foo', 'description', 'foodesc')
    gitweb.set_descriptions(
        config=cfg,
        )
    got = readFile(os.path.join(path, 'description'))
    eq(got, 'foodesc\n')
Example #30
0
def test_projectsList_path():
    tmp = maketemp()
    path = os.path.join(tmp, "foo.git")
    mkdir(path)
    cfg = RawConfigParser()
    cfg.add_section("gitosis")
    cfg.set("gitosis", "repositories", tmp)
    cfg.add_section("repo foo")
    cfg.set("repo foo", "gitweb", "yes")
    projects_list = os.path.join(tmp, "projects.list")
    gitweb.generate_project_list(config=cfg, path=projects_list)
    got = readFile(projects_list)
    eq(
        got,
        """\
foo.git
""",
    )
Example #31
0
    def test_simple(self):
        tmp = maketemp()
        path = os.path.join(tmp, "authorized_keys")
        f = file(path, "w")
        try:
            f.write(
                """\
# foo
bar
### autogenerated by gitosis, DO NOT EDIT
command="/foo/bar/baz/gitosis-serve wsmith",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %(key_2)s
baz
"""
                % dict(key_2=KEY_2)
            )
        finally:
            f.close()
        keydir = os.path.join(tmp, "one")
        mkdir(keydir)
        writeFile(os.path.join(keydir, "jdoe.pub"), KEY_1 + "\n")

        ssh.writeAuthorizedKeys(path=path, keydir=keydir)

        got = readFile(path)
        eq(
            got,
            """\
# foo
bar
baz
### autogenerated by gitosis, DO NOT EDIT
command="gitosis-serve jdoe",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %(key_1)s
"""
            % dict(key_1=KEY_1),
        )
Example #32
0
    def test_simple(self):
        tmp = maketemp()
        path = os.path.join(tmp, 'authorized_keys')
        f = file(path, 'w')
        try:
            f.write('''\
# foo
bar
### autogenerated by gitosis, DO NOT EDIT
command="/foo/bar/baz/gitosis-serve wsmith",no-port-forwarding,\
no-X11-forwarding,no-agent-forwarding,no-pty %(key_2)s
baz
''' % dict(key_2=KEY_2))
        finally:
            f.close()
        keydir = os.path.join(tmp, 'one')
        mkdir(keydir)
        writeFile(os.path.join(keydir, 'jdoe.pub'), KEY_1+'\n')

        ssh.writeAuthorizedKeys(
            path=path, keydir=keydir)

        got = readFile(path)
        eq(got, '''# foo\nbar\nbaz\n### autogenerated by gitosis, DO NOT EDIT\ncommand="gitosis-serve jdoe",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty %(key_1)s\n''' % dict(key_1=KEY_1))
Example #33
0
 def test_empty(self):
     tmp = maketemp()
     empty = os.path.join(tmp, "empty")
     mkdir(empty)
     gen = ssh.readKeys(keydir=empty)
     assert_raises(StopIteration, gen.next)
Example #34
0
 def test_empty(self):
     tmp = maketemp()
     empty = os.path.join(tmp, 'empty')
     mkdir(empty)
     gen = ssh.readKeys(keydir=empty)
     assert_raises(StopIteration, gen.__next__)