示例#1
0
 def test_empty_config(self, mock_out, mock_err):
     schema({})
     output = mock_out.getvalue()
     self.assertEqual([
         'consul', 'etcd', 'exhibitor', 'kubernetes', 'name', 'postgresql',
         'restapi', 'scope', 'zookeeper'
     ], parse_output(output))
示例#2
0
 def test_pg_wal_doesnt_exist(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     files.append(os.path.join(config["postgresql"]["data_dir"], "global", "pg_control"))
     files.append(os.path.join(config["postgresql"]["data_dir"], "PG_VERSION"))
     c = copy.deepcopy(config)
     del c["postgresql"]["bin_dir"]
     with patch('patroni.validator.open', mock_open(read_data='11')):
         schema(c)
     output = mock_out.getvalue()
     self.assertEqual(['postgresql.data_dir'], parse_output(output))
示例#3
0
 def test_bin_dir_is_file(self, mock_out, mock_err):
     files.append(config["postgresql"]["data_dir"])
     files.append(config["postgresql"]["bin_dir"])
     c = copy.deepcopy(config)
     c["restapi"]["connect_address"] = 'False:blabla'
     c["etcd"]["hosts"] = ["127.0.0.1:2379", "1244.0.0.1:2379", "127.0.0.1:invalidport"]
     c["kubernetes"]["pod_ip"] = "127.0.0.1111"
     schema(c)
     output = mock_out.getvalue()
     self.assertEqual(['etcd.hosts.1', 'etcd.hosts.2', 'kubernetes.pod_ip', 'postgresql.bin_dir',
                       'postgresql.data_dir', 'restapi.connect_address'], parse_output(output))
示例#4
0
 def test_data_dir_is_empty_string(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     c = copy.deepcopy(config)
     c["kubernetes"] = False
     c["postgresql"]["pg_hba"] = ""
     c["postgresql"]["data_dir"] = ""
     c["postgresql"]["bin_dir"] = ""
     schema(c)
     output = mock_out.getvalue()
     self.assertEqual(['kubernetes', 'postgresql.bin_dir',
                       'postgresql.data_dir', 'postgresql.pg_hba'], parse_output(output))
示例#5
0
 def test_bin_dir_is_empty(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     files.append(os.path.join(config["postgresql"]["data_dir"], "global", "pg_control"))
     c = copy.deepcopy(config)
     c["restapi"]["connect_address"] = "127.0.0.1:8008"
     c["kubernetes"]["pod_ip"] = "::1"
     c["consul"]["host"] = "127.0.0.1:50000"
     c["etcd"]["host"] = "127.0.0.1:237"
     c["postgresql"]["listen"] = "127.0.0.1:5432"
     with patch('patroni.validator.open', mock_open(read_data='9')):
         schema(c)
     output = mock_out.getvalue()
     self.assertEqual(['consul.host', 'etcd.host', 'postgresql.bin_dir', 'postgresql.data_dir',
                       'postgresql.listen', 'restapi.connect_address'], parse_output(output))
示例#6
0
 def test_data_dir_contains_pg_version(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     directories.append(os.path.join(config["postgresql"]["data_dir"], "pg_wal"))
     files.append(os.path.join(config["postgresql"]["data_dir"], "global", "pg_control"))
     files.append(os.path.join(config["postgresql"]["data_dir"], "PG_VERSION"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "pg_ctl"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "initdb"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "pg_controldata"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "pg_basebackup"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "postgres"))
     files.append(os.path.join(config["postgresql"]["bin_dir"], "pg_isready"))
     with patch('patroni.validator.open', mock_open(read_data='12')):
         schema(config)
     output = mock_out.getvalue()
     self.assertEqual([], parse_output(output))
示例#7
0
 def test_pg_version_missmatch(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     directories.append(
         os.path.join(config["postgresql"]["data_dir"], "pg_wal"))
     files.append(
         os.path.join(config["postgresql"]["data_dir"], "global",
                      "pg_control"))
     files.append(
         os.path.join(config["postgresql"]["data_dir"], "PG_VERSION"))
     c = copy.deepcopy(config)
     c["etcd"]["hosts"] = []
     del c["postgresql"]["bin_dir"]
     with patch('patroni.validator.open', mock_open(read_data='11')):
         schema(c)
     output = mock_out.getvalue()
     self.assertEqual([
         'etcd.hosts', 'postgresql.data_dir', 'raft.bind_addr',
         'raft.self_addr'
     ], parse_output(output))
示例#8
0
 def test_data_dir_is_empty_string(self, mock_out, mock_err):
     directories.append(config["postgresql"]["data_dir"])
     directories.append(config["postgresql"]["bin_dir"])
     c = copy.deepcopy(config)
     c["kubernetes"] = False
     c["postgresql"]["pg_hba"] = ""
     c["postgresql"]["data_dir"] = ""
     c["postgresql"]["bin_dir"] = ""
     errors = schema(c)
     output = "\n".join(errors)
     self.assertEqual([
         'kubernetes', 'postgresql.bin_dir', 'postgresql.data_dir',
         'postgresql.pg_hba', 'raft.bind_addr', 'raft.self_addr'
     ], parse_output(output))
示例#9
0
 def test_complete_config(self, mock_out, mock_err):
     schema(config)
     output = mock_out.getvalue()
     self.assertEqual(
         ['postgresql.bin_dir', 'raft.bind_addr', 'raft.self_addr'],
         parse_output(output))
示例#10
0
 def test_empty_config(self, mock_out, mock_err):
     schema({})
     output = mock_out.getvalue()
     expected = list(
         sorted(['name', 'postgresql', 'restapi', 'scope'] + available_dcs))
     self.assertEqual(expected, parse_output(output))
示例#11
0
 def test_complete_config(self, mock_out, mock_err):
     errors = schema(config)
     output = "\n".join(errors)
     self.assertEqual(
         ['postgresql.bin_dir', 'raft.bind_addr', 'raft.self_addr'],
         parse_output(output))