def test_patroni_main(self, mock_machines): with patch('subprocess.call', Mock(return_value=1)): sys.argv = ['patroni.py', 'postgres0.yml'] mock_machines.__get__ = Mock(return_value=['http://remotehost:2379']) with patch.object(Patroni, 'run', Mock(side_effect=SleepException)): self.assertRaises(SleepException, _main) with patch.object(Patroni, 'run', Mock(side_effect=KeyboardInterrupt())): _main()
def test_patroni_main(self, mock_machines): with patch('subprocess.call', Mock(return_value=1)): sys.argv = ['patroni.py', 'postgres0.yml'] mock_machines.__get__ = Mock(return_value=['http://remotehost:2379']) with patch.object(Patroni, 'run', Mock(side_effect=SleepException)): self.assertRaises(SleepException, _main) with patch.object(Patroni, 'run', Mock(side_effect=KeyboardInterrupt())): with patch('patroni.ha.Ha.is_paused', Mock(return_value=True)): _main()
def test_patroni_main(self, mock_popen, mock_getpid): mock_getpid.return_value = 2 _main() with patch('sys.frozen', Mock(return_value=True), create=True), patch('os.setsid', Mock()): sys.argv = [ '/patroni', 'pg_ctl_start', 'postgres', '-D', '/data', '--max_connections=100' ] _main() mock_getpid.return_value = 1 def mock_signal(signo, handler): handler(signo, None) with patch('signal.signal', mock_signal): with patch('os.waitpid', Mock(side_effect=[(1, 0), (0, 0)])): _main() with patch('os.waitpid', Mock(side_effect=OSError)): _main() ref = {'passtochild': lambda signo, stack_frame: 0} def mock_sighup(signo, handler): if signo == signal.SIGHUP: ref['passtochild'] = handler def mock_wait(): ref['passtochild'](0, None) mock_popen.return_value.wait = mock_wait with patch('signal.signal', mock_sighup), patch('os.kill', Mock()): self.assertIsNone(_main())
def test_patroni_main(self, mock_popen, mock_getpid): mock_getpid.return_value = 2 _main() with patch('sys.frozen', Mock(return_value=True), create=True): sys.argv = ['/patroni', 'pg_ctl_start', 'postgres', '-D', '/data', '--max_connections=100'] _main() mock_getpid.return_value = 1 def mock_signal(signo, handler): handler(signo, None) with patch('signal.signal', mock_signal): with patch('os.waitpid', Mock(side_effect=[(1, 0), (0, 0)])): _main() with patch('os.waitpid', Mock(side_effect=OSError)): _main() ref = {'passtochild': lambda signo, stack_frame: 0} def mock_sighup(signo, handler): if signo == signal.SIGHUP: ref['passtochild'] = handler def mock_wait(): ref['passtochild'](0, None) mock_popen.return_value.wait = mock_wait with patch('signal.signal', mock_sighup), patch('os.kill', Mock()): self.assertIsNone(_main())
def test_patroni_main(self, mock_machines): _main() sys.argv = ['patroni.py', 'postgres0.yml'] mock_machines.__get__ = Mock(return_value=['http://remotehost:2379']) with patch.object(Patroni, 'run', Mock(side_effect=SleepException)): self.assertRaises(SleepException, _main) with patch.object(Patroni, 'run', Mock(side_effect=KeyboardInterrupt())): _main() sys.argv = ['patroni.py'] # read the content of the yaml configuration file into the environment variable # in order to test how does patroni handle the configuration passed from the environment. with open('postgres0.yml', 'r') as f: os.environ[Patroni.PATRONI_CONFIG_VARIABLE] = f.read() with patch.object(Patroni, 'run', Mock(side_effect=SleepException())): self.assertRaises(SleepException, _main) del os.environ[Patroni.PATRONI_CONFIG_VARIABLE]
def test_patroni_main(self, mock_process, mock_getpid): mock_getpid.return_value = 2 _main() mock_getpid.return_value = 1 def mock_signal(signo, handler): handler(signo, None) with patch('signal.signal', mock_signal): with patch('os.waitpid', Mock(side_effect=[(1, 0), (0, 0)])): _main() with patch('os.waitpid', Mock(side_effect=OSError)): _main() ref = {'passtochild': lambda signo, stack_frame: 0} def mock_sighup(signo, handler): if hasattr(signal, 'SIGHUP') and signo == signal.SIGHUP: ref['passtochild'] = handler def mock_join(): ref['passtochild'](0, None) mock_process.return_value.join = mock_join with patch('signal.signal', mock_sighup), patch('os.kill', Mock()): self.assertIsNone(_main())
def test_patroni_main(self, mock_machines): with patch('subprocess.call', Mock(return_value=1)): _main() sys.argv = ['patroni.py', 'postgres0.yml'] mock_machines.__get__ = Mock( return_value=['http://remotehost:2379']) with patch.object(Patroni, 'run', Mock(side_effect=SleepException)): self.assertRaises(SleepException, _main) with patch.object(Patroni, 'run', Mock(side_effect=KeyboardInterrupt())): _main() sys.argv = ['patroni.py'] # read the content of the yaml configuration file into the environment variable # in order to test how does patroni handle the configuration passed from the environment. with open('postgres0.yml', 'r') as f: os.environ[Patroni.PATRONI_CONFIG_VARIABLE] = f.read() with patch.object(Patroni, 'run', Mock(side_effect=SleepException())): self.assertRaises(SleepException, _main) del os.environ[Patroni.PATRONI_CONFIG_VARIABLE]