# -*- coding: utf-8 -*- import os import unittest from pgbouncemgr.node_config import * class NodeConfigTests(unittest.TestCase): def test_CreateNewNodeConfig(self): config = NodeConfig("test") self.assertEqual("test", config.node_id) self.assertEqual(None, config.pgbouncer_config) self.assertEqual(None, config.host) self.assertEqual(None, config.port) def test_WithNonExistentFile_SetPgbouncerConfig_RaisesException(self): config = NodeConfig("test") with self.assertRaises(InvalidConfigValue) as context: config.pgbouncer_config = "/path/to/non-existent/config.ini" self.assertIn("key=nodes[test].pgbouncer_config", str(context.exception)) self.assertIn("/non-existent/config.ini", str(context.exception)) def test_WithExistingFile_SetPgbouncerConfig_UpdatesConfig(self): config = NodeConfig("test") ini = os.path.join( os.path.dirname(os.path.realpath(__file__)), "testfiles", "pgbouncer.ini") config.pgbouncer_config = ini self.assertEqual(ini, config.pgbouncer_config)