From: Alfredo Deza Date: Fri, 22 Aug 2014 19:42:13 +0000 (-0400) Subject: add tests to both new utilities X-Git-Tag: v1.5.12~5^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=01dd7ce66233037114f0ba2caf8b929c7937888a;p=ceph-deploy.git add tests to both new utilities Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/tests/unit/test_mon.py b/ceph_deploy/tests/unit/test_mon.py index 5ba4136..871d7e0 100644 --- a/ceph_deploy/tests/unit/test_mon.py +++ b/ceph_deploy/tests/unit/test_mon.py @@ -165,3 +165,72 @@ class TestIsRunning(object): with patch('ceph_deploy.mon.subprocess.Popen', self.fake_popen): result = mon.is_running(['ceph', 'status']) assert result is False + + +class TestKeyringParser(object): + + def test_line_ends_with_newline_char(self, tmpdir): + keyring = tmpdir.join('foo.mon.keyring') + keyring.write('[section]\nasdfasdf\nkey = value') + result = mon.keyring_parser(keyring.strpath) + + assert result == ['section'] + + def test_line_does_not_end_with_newline_char(self, tmpdir): + keyring = tmpdir.join('foo.mon.keyring') + keyring.write('[section]asdfasdf\nkey = value') + result = mon.keyring_parser(keyring.strpath) + + assert result == [] + + +class TestConcatenateKeyrings(object): + + def setup(self): + self.args = Mock() + + def make_keyring(self, tmpdir, name, contents): + keyring = tmpdir.join(name) + keyring.write(contents) + return keyring + + def test_multiple_keyrings_work(self, tmpdir): + self.make_keyring(tmpdir, 'foo.keyring', '[mon.1]\nkey = value\n') + self.make_keyring(tmpdir, 'bar.keyring', '[mon.2]\nkey = value\n') + self.make_keyring(tmpdir, 'fez.keyring', '[mon.3]\nkey = value\n') + self.args.keyrings = tmpdir.strpath + expected = '\n'.join([ + '[mon.2]', + 'key = value', + '[mon.3]', + 'key = value', + '[mon.1]', + 'key = value', + '', + ]) + + assert mon.concatenate_keyrings(self.args) == expected + + def test_skips_duplicate_content(self, tmpdir): + self.make_keyring(tmpdir, 'foo.keyring', '[mon.1]\nkey = value\n') + self.make_keyring(tmpdir, 'bar.keyring', '[mon.2]\nkey = value\n') + self.make_keyring(tmpdir, 'fez.keyring', '[mon.3]\nkey = value\n') + self.make_keyring(tmpdir, 'dupe.keyring', '[mon.3]\nkey = value\n') + self.args.keyrings = tmpdir.strpath + expected = '\n'.join([ + '[mon.2]', + 'key = value', + '[mon.3]', + 'key = value', + '[mon.1]', + 'key = value', + '', + ]) + + assert mon.concatenate_keyrings(self.args) == expected + + def test_errors_when_no_keyrings(self, tmpdir): + self.args.keyrings = tmpdir.strpath + + with py.test.raises(RuntimeError): + mon.concatenate_keyrings(self.args)