diff --git a/gitosis/ssh.py b/gitosis/ssh.py index 7a70ed4..3eb5c37 100644 --- a/gitosis/ssh.py +++ b/gitosis/ssh.py @@ -13,12 +13,10 @@ def readKeys(keydir): path = os.path.join(keydir, filename) f = file(path) - try: - line = f.readline() - finally: - f.close() - line = line.rstrip('\n') - yield (basename, line) + for line in f: + line = line.rstrip('\n') + yield (basename, line) + f.close() COMMENT = '### autogenerated by gitosis, DO NOT EDIT' diff --git a/gitosis/test/test_ssh.py b/gitosis/test/test_ssh.py index 3b29310..16650c6 100644 --- a/gitosis/test/test_ssh.py +++ b/gitosis/test/test_ssh.py @@ -73,6 +73,21 @@ class ReadKeys_Test(object): ('wsmith', KEY_2), ])) + def test_multiple_lines(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), + ])) + class GenerateAuthorizedKeys_Test(object): def test_simple(self): def k():