Exemple #1
0
    def test_from_pidfile(self, mock_read, mock_init, mock_create_time):
        mock_init.side_effect = psutil.NoSuchProcess(123)
        mock_read.return_value = {}
        self.assertIsNone(PostmasterProcess.from_pidfile(''))
        mock_read.return_value = {"pid": "foo"}
        self.assertIsNone(PostmasterProcess.from_pidfile(''))
        mock_read.return_value = {"pid": "123"}
        self.assertIsNone(PostmasterProcess.from_pidfile(''))

        mock_init.side_effect = None
        with patch.object(psutil.Process, 'pid', 123), \
                patch.object(psutil.Process, 'ppid', return_value=124), \
                patch('os.getpid', return_value=125) as mock_ospid, \
                patch('os.getppid', return_value=126):

            self.assertIsNotNone(PostmasterProcess.from_pidfile(''))

            mock_create_time.return_value = 100000
            mock_read.return_value = {"pid": "123", "start_time": "200000"}
            self.assertIsNone(PostmasterProcess.from_pidfile(''))

            mock_read.return_value = {"pid": "123", "start_time": "foobar"}
            self.assertIsNotNone(PostmasterProcess.from_pidfile(''))

            mock_ospid.return_value = 123
            mock_read.return_value = {"pid": "123", "start_time": "100000"}
            self.assertIsNone(PostmasterProcess.from_pidfile(''))
Exemple #2
0
    def test_from_pidfile(self, mock_init, mock_create_time):
        mock_init.side_effect = psutil.NoSuchProcess(123)
        self.assertEquals(PostmasterProcess.from_pidfile({}), None)
        self.assertEquals(PostmasterProcess.from_pidfile({"pid": "foo"}), None)
        self.assertEquals(PostmasterProcess.from_pidfile({"pid": "123"}), None)

        mock_init.side_effect = None
        with patch.object(psutil.Process, 'pid', 123), \
                patch.object(psutil.Process, 'parent', return_value=124), \
                patch('os.getpid', return_value=125) as mock_ospid, \
                patch('os.getppid', return_value=126):

            self.assertNotEquals(
                PostmasterProcess.from_pidfile({"pid": "123"}), None)

            mock_create_time.return_value = 100000
            self.assertEquals(
                PostmasterProcess.from_pidfile({
                    "pid": "123",
                    "start_time": "200000"
                }), None)
            self.assertNotEquals(
                PostmasterProcess.from_pidfile({
                    "pid": "123",
                    "start_time": "foobar"
                }), None)

            mock_ospid.return_value = 123
            self.assertEquals(
                PostmasterProcess.from_pidfile({
                    "pid": "123",
                    "start_time": "100000"
                }), None)
Exemple #3
0
    def test_from_pidfile(self, mock_init, mock_create_time):
        mock_init.side_effect = psutil.NoSuchProcess(123)
        self.assertEquals(PostmasterProcess.from_pidfile({}), None)
        self.assertEquals(PostmasterProcess.from_pidfile({"pid": "foo"}), None)
        self.assertEquals(PostmasterProcess.from_pidfile({"pid": "123"}), None)

        mock_init.side_effect = None
        with patch.object(psutil.Process, 'pid', 123), \
                patch.object(psutil.Process, 'parent', return_value=124), \
                patch('os.getpid', return_value=125) as mock_ospid, \
                patch('os.getppid', return_value=126):

            self.assertNotEquals(PostmasterProcess.from_pidfile({"pid": "123"}), None)

            mock_create_time.return_value = 100000
            self.assertEquals(PostmasterProcess.from_pidfile({"pid": "123", "start_time": "200000"}), None)
            self.assertNotEquals(PostmasterProcess.from_pidfile({"pid": "123", "start_time": "foobar"}), None)

            mock_ospid.return_value = 123
            self.assertEquals(PostmasterProcess.from_pidfile({"pid": "123", "start_time": "100000"}), None)
Exemple #4
0
 def test_read_postmaster_pidfile(self):
     with patch.object(builtins, 'open', Mock(side_effect=IOError)):
         self.assertIsNone(PostmasterProcess.from_pidfile(''))
     with patch.object(builtins, 'open', mock_open(read_data='123\n')):
         self.assertIsNone(PostmasterProcess.from_pidfile(''))