def test_pact_urls_or_broker_required(self): self.mock_Popen.return_value.returncode = 2 wrapper = VerifyWrapper() with self.assertRaises(PactException) as context: wrapper.call_verify(provider='provider', provider_base_url='http://localhost') self.assertTrue('Pact urls or Pact broker required' in context.exception.message)
def test_broker_without_authentication_can_be_used(self): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() wrapper.call_verify(provider='provider', provider_base_url='http://localhost', broker_url='http://broker.example.com') self.assertProcess(*[ '--provider-base-url=http://localhost', '--provider=provider', '--pact-broker-base-url=http://broker.example.com', ])
def test_all_url_options(self, mock_isfile): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() result, output = wrapper.call_verify('./pacts/consumer-provider5.json', './pacts/consumer-provider3.json', provider_base_url='http://localhost', provider_states_setup_url='http://localhost/provider-states/set', provider='provider', publish_verification_results=True, provider_app_version='1.2.3', custom_provider_headers=['Authorization: Basic cGFj', 'CustomHeader: somevalue'], log_dir='tmp/logs/pact.test.log', log_level='INFO', timeout=60, verbose=True) self.assertEqual(result, 0) self.mock_Popen.return_value.wait.assert_called_once_with() self.assertEqual(self.mock_Popen.call_count, 1) self.assertProcess( './pacts/consumer-provider5.json', './pacts/consumer-provider3.json', '--custom-provider-header=Authorization: Basic cGFj', '--custom-provider-header=CustomHeader: somevalue', '--provider-base-url=http://localhost', '--provider-states-setup-url=http://localhost/provider-states/set', '--provider=provider', '--publish-verification-results', '--provider-app-version', '1.2.3', '--log-dir=tmp/logs/pact.test.log', '--log-level=INFO', '--verbose')
def test_sanitize_called(self, mock_rerun_cmd, mock_expand_dirs, mock_sanitize_logs, mock_path_exists): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() result, output = wrapper.call_verify('path/to/pact1', 'path/to/pact2', provider_base_url='http://localhost', provider='provider') mock_sanitize_logs.assert_called_with(self.mock_Popen.return_value, False)
def test_pact_urls_provided(self): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() result, output = wrapper.call_verify('./pacts/consumer-provider.json', './pacts/consumer-provider2.json', provider='test_provider', provider_base_url='http://localhost') self.assertProcess(*self.default_call) self.assertEqual(result, 0)
def test_publishing_with_version(self, mock_sanitize_logs, mock_path_exists): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() result, output = wrapper.call_verify('./pacts/consumer-provider.json', './pacts/consumer-provider2.json', provider='test_provider', provider_base_url='http://localhost', provider_app_version='1.2.3' ) self.default_call.extend(['--provider-app-version', '1.2.3', '--publish-verification-results']) self.assertProcess(*self.default_call) self.assertEqual(result, 0)
def test_uses_broker_if_no_pacts_and_provider_required(self): self.mock_Popen.return_value.returncode = 0 wrapper = VerifyWrapper() result, output = wrapper.call_verify(provider='test_provider', provider_base_url='http://localhost', broker_username='******', broker_password='******', broker_url='http://broker', consumer_tags=['prod', 'dev'], provider_tags=['dev', 'qa']) self.assertProcess(*self.broker_call) self.assertEqual(result, 0)