def test_stop_windows(self): self.mock_platform.return_value = 'Windows' ruby_exe = Mock(spec=Process) self.mock_Process.return_value.children.return_value = [ruby_exe] self.mock_Pid_exists.return_value = False pact = Pact(Consumer('consumer', version='abc'), Provider('provider'), publish_to_broker=True, pact_dir='some_dir') pact._process = Mock(spec=Popen, pid=999) pact.stop_service() self.assertFalse(pact._process.terminate.called) self.assertFalse(pact._process.communicate.called) self.mock_Process.assert_called_once_with(999) self.mock_Process.return_value.children.assert_called_once_with( recursive=True) ruby_exe.terminate.assert_called_once_with() self.mock_Process.return_value.wait.assert_called_once_with() self.mock_Pid_exists.assert_called_once_with(999) self.mock_publish.assert_called_once_with(pact, 'consumer', 'abc', consumer_tags=None, tag_with_git_branch=False, pact_dir='some_dir')
def test_stop_posix(self): self.mock_platform.return_value = 'Linux' pact = Pact(Consumer('consumer'), Provider('provider')) pact._process = Mock(spec=Popen, pid=999, returncode=0) pact.stop_service() pact._process.terminate.assert_called_once_with() pact._process.communicate.assert_called_once_with() self.assertFalse(self.mock_Process.called)
def test_stop_fails_posix(self): self.mock_platform.return_value = 'Linux' self.mock_Popen.return_value.returncode = 1 pact = Pact(Consumer('consumer'), Provider('provider')) pact._process = Mock(spec=Popen, pid=999, returncode=1) with self.assertRaises(RuntimeError): pact.stop_service() pact._process.terminate.assert_called_once_with() pact._process.communicate.assert_called_once_with()
def test_publish_after_stop_service(self): self.mock_platform.return_value = 'Linux' pact = Pact(self.consumer, self.provider, publish_to_broker=True, broker_base_url="http://localhost") mock_publish = patch.object(pact, 'publish', autospec=True).start() pact._process = Mock(spec=Popen, pid=999, returncode=0) pact.stop_service() mock_publish.assert_called_once_with()
def test_stop_fails_windows(self): self.mock_platform.return_value = 'Windows' self.mock_Popen.return_value.returncode = 15 self.mock_Pid_exists.return_value = True pact = Pact(Consumer('consumer'), Provider('provider')) pact._process = Mock(spec=Popen, pid=999, returncode=15) with self.assertRaises(RuntimeError): pact.stop_service() self.assertFalse(pact._process.terminate.called) self.assertFalse(pact._process.communicate.called) self.mock_Process.assert_called_once_with(999) self.mock_Process.return_value.children.assert_called_once_with( recursive=True) self.mock_Process.return_value.wait.assert_called_once_with() self.mock_Pid_exists.assert_called_once_with(999)
def test_stop_windows(self): self.mock_platform.return_value = 'Windows' ruby_exe = Mock(spec=Process) self.mock_Process.return_value.children.return_value = [ruby_exe] self.mock_Pid_exists.return_value = False pact = Pact(Consumer('consumer'), Provider('provider')) pact._process = Mock(spec=Popen, pid=999) pact.stop_service() self.assertFalse(pact._process.terminate.called) self.assertFalse(pact._process.communicate.called) self.mock_Process.assert_called_once_with(999) self.mock_Process.return_value.children.assert_called_once_with( recursive=True) ruby_exe.terminate.assert_called_once_with() self.mock_Process.return_value.wait.assert_called_once_with() self.mock_Pid_exists.assert_called_once_with(999)