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)
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)
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))
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)
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__)
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([]))
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)
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)
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__)
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([]))
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)
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)
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'])
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)]))
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)
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")
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')
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')
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")
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 ''')
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), ]))
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), ]))
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')
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), ]))
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 ''')
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 ''')
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')
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 """, )
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')
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 """, )
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), )
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))
def test_empty(self): tmp = maketemp() empty = os.path.join(tmp, "empty") mkdir(empty) gen = ssh.readKeys(keydir=empty) assert_raises(StopIteration, gen.next)
def test_empty(self): tmp = maketemp() empty = os.path.join(tmp, 'empty') mkdir(empty) gen = ssh.readKeys(keydir=empty) assert_raises(StopIteration, gen.__next__)