--- /dev/null
+import mox
+import os
+import tempfile
+import unittest
+from cam import config
+
+
+class ConfigTest(unittest.TestCase):
+
+ def setUp(self):
+ self.tmpdir = tempfile.mkdtemp()
+ self.mox = mox.Mox()
+
+ def tearDown(self):
+ self.mox.VerifyAll()
+ self.mox.UnsetStubs()
+ os.system("rm -fr '%s'" % self.tmpdir)
+
+ def test_read_config(self):
+ test_cfg = '''
+[global]
+root_dir = root
+
+[ca]
+something = else
+
+[cert1]
+cn = test.com
+'''
+ cf_file = os.path.join(self.tmpdir, 'config')
+ cf_fd = open(cf_file, 'w')
+ cf_fd.write(test_cfg)
+ cf_fd.close()
+ self.mox.StubOutWithMock(config.ca, 'CA', use_mock_anything=True)
+ config.ca.CA('root', {'something': 'else'}).AndReturn('ca')
+ self.mox.StubOutWithMock(config.cert, 'Cert', use_mock_anything=True)
+ config.cert.Cert('ca', 'cert1', {'cn': 'test.com'}).AndReturn('cert1')
+ self.mox.ReplayAll()
+
+ global_config, ca_obj, certs = config.read_config(cf_file)
+ self.assertEquals('ca', ca_obj)
+ self.assertEquals(['cert1'], certs)
+
+ def test_read_config_nonexist(self):
+ def f():
+ config.read_config('nonexist.conf')
+ self.assertRaises(config.ConfigError, f)
+
+
+if __name__ == '__main__':
+ unittest.main()