Skip to content

Commit e7d686a

Browse files
committed
feat: some work on preparing verify call
1 parent 4b239e4 commit e7d686a

7 files changed

+54
-51
lines changed

pact/cli/verify.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ def main(pacts, base_url, pact_url, pact_urls, states_url, states_setup_url,
188188
options = dict(filter(lambda item: item[1] != '', options.items()))
189189
options = dict(filter(lambda item: is_empty_list(item), options.items()))
190190

191-
success, logs = VerifyWrapper().call_verify(*all_pact_urls,
191+
success, logs = VerifyWrapper().verify(*all_pact_urls,
192192
provider=provider,
193193
provider_base_url=base_url,
194194
enable_pending=enable_pending,

pact/ffi/ffi_verifier.py

+13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ def version(self):
1515
result = lib.pactffi_version()
1616
return ffi.string(result).decode('utf-8')
1717

18+
19+
def verify(self):
20+
"""Call verify method."""
21+
ffi = FFI()
22+
ffi.cdef("""
23+
char *pactffi_verify(void);
24+
""")
25+
lib = self._load_ffi_library(ffi)
26+
result = lib.pactffi_version()
27+
return ffi.string(result).decode('utf-8')
28+
29+
# pactffi_verify
30+
1831
def _load_ffi_library(self, ffi):
1932
"""Load the right library."""
2033
target_platform = platform.platform().lower()

pact/verifier.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def verify_pacts(self, *pacts, enable_pending=False, include_wip_pacts_since=Non
5656
# rerun_command() # env =
5757

5858
options = self.extract_params(**kwargs)
59-
success, logs = VerifyWrapper().call_verify(*pacts,
59+
success, logs = VerifyWrapper().verify(*pacts,
6060
provider=self.provider,
6161
provider_base_url=self.provider_base_url,
6262
enable_pending=enable_pending,
@@ -90,7 +90,7 @@ def verify_with_broker(self, enable_pending=False, include_wip_pacts_since=None,
9090
}
9191
options.update(self.extract_params(**kwargs))
9292

93-
success, logs = VerifyWrapper().call_verify(provider=self.provider,
93+
success, logs = VerifyWrapper().verify(provider=self.provider,
9494
provider_base_url=self.provider_base_url,
9595
enable_pending=enable_pending,
9696
include_wip_pacts_since=include_wip_pacts_since,

pact/verify_wrapper.py

+1-11
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def _validate_input(self, pacts, **kwargs):
133133
if len(pacts) == 0 and not self._broker_present(**kwargs):
134134
raise PactException('Pact urls or Pact broker required')
135135

136-
def call_verify(
136+
def verify(
137137
self, *pacts, provider_base_url, provider, enable_pending=False,
138138
include_wip_pacts_since=None, **kwargs
139139
):
@@ -196,16 +196,6 @@ def call_verify(
196196

197197
return result.returncode, logs
198198

199-
def publish_results(self, provider_app_version, command):
200-
"""Publish results to broker."""
201-
if not provider_app_version:
202-
# todo implement
203-
raise Exception('todo')
204-
205-
command.extend(["--provider-app-version",
206-
provider_app_version,
207-
"--publish-verification-results"])
208-
209199
def version(self):
210200
"""Publish version info."""
211201
return '0.0.0'

tests/cli/test_verify.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def test_provider_base_url_is_required(self):
6969
self.assertEqual(result.exit_code, 2)
7070
self.assertIn('--provider-base-url', result.output)
7171

72-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
72+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
7373
def test_pact_urls_or_broker_are_required(self, mock_wrapper):
7474
result = self.runner.invoke(
7575
verify.main, ['--provider-base-url=http://localhost'])
@@ -78,7 +78,7 @@ def test_pact_urls_or_broker_are_required(self, mock_wrapper):
7878
self.assertIn('at least one', result.output)
7979
mock_wrapper.assert_not_called()
8080

81-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
81+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
8282
def test_broker_url_but_no_provider_required(self, mock_wrapper):
8383
result = self.runner.invoke(
8484
verify.main, ['--provider-base-url=http://localhost',
@@ -87,17 +87,17 @@ def test_broker_url_but_no_provider_required(self, mock_wrapper):
8787
mock_wrapper.assert_not_called()
8888
self.assertEqual(result.exit_code, 1)
8989

90-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
90+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
9191
@patch("pact.verify_wrapper.isfile", return_value=True)
9292
def test_wrapper_error_code_returned(self, mock_isfile, mock_wrapper):
9393
mock_wrapper.return_value = 8, None # rnd number to indicate retval returned
9494

9595
result = self.runner.invoke(verify.main, self.all_url_opts)
9696

97-
self.assertFalse(mock_wrapper.call_verify.called)
97+
self.assertFalse(mock_wrapper.verify.called)
9898
self.assertEqual(result.exit_code, 8)
9999

100-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
100+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
101101
@patch("pact.verify_wrapper.isfile", return_value=True)
102102
def test_successful_verification(self, mock_isfile, mock_wrapper):
103103
mock_wrapper.return_value = 0, None # rnd number to indicate retval returned
@@ -115,7 +115,7 @@ def test_successful_verification(self, mock_isfile, mock_wrapper):
115115
publish_verification_results=False,
116116
include_wip_pacts_since=None)
117117

118-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
118+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
119119
@patch("pact.verify_wrapper.isfile", return_value=True)
120120
def test_broker_url_and_provider_required(self, mock_isfile, mock_wrapper):
121121
mock_wrapper.return_value = 0, None
@@ -125,7 +125,7 @@ def test_broker_url_and_provider_required(self, mock_isfile, mock_wrapper):
125125
mock_wrapper.assert_called()
126126
self.assertEqual(result.exit_code, 0)
127127

128-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
128+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
129129
@patch("pact.verify_wrapper.isfile", return_value=True)
130130
def test_pact_url_param_supported(self, mock_isfile, mock_wrapper):
131131
mock_wrapper.return_value = 0, None
@@ -146,7 +146,7 @@ def test_pact_url_param_supported(self, mock_isfile, mock_wrapper):
146146
include_wip_pacts_since=None)
147147
self.assertEqual(result.exit_code, 0)
148148

149-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
149+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
150150
@patch("pact.verify_wrapper.isfile", return_value=True)
151151
def test_pact_urls_param_supported(self, mock_isfile, mock_wrapper):
152152
mock_wrapper.return_value = 0, None
@@ -169,17 +169,17 @@ def test_pact_urls_param_supported(self, mock_isfile, mock_wrapper):
169169
include_wip_pacts_since=None)
170170
self.assertEqual(result.exit_code, 0)
171171

172-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
172+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
173173
@patch("pact.verify_wrapper.isfile", return_value=False)
174174
def test_local_pact_urls_must_exist(self, mock_isfile, mock_wrapper):
175175
mock_wrapper.return_value = 0, None
176176

177177
result = self.runner.invoke(verify.main, self.all_url_opts)
178178
self.assertEqual(result.exit_code, 1)
179179
self.assertIn('./pacts/consumer-provider.json', result.output)
180-
mock_wrapper.call_verify.assert_not_called
180+
mock_wrapper.verify.assert_not_called
181181

182-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
182+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
183183
@patch("pact.verify_wrapper.isfile", return_value=True)
184184
def test_failed_verification(self, mock_isfile, mock_wrapper):
185185
mock_wrapper.return_value = 3, None
@@ -198,7 +198,7 @@ def test_failed_verification(self, mock_isfile, mock_wrapper):
198198
@patch.dict(os.environ, {'PACT_BROKER_PASSWORD': 'pwd',
199199
'PACT_BROKER_USERNAME': 'broker_user',
200200
'PACT_BROKER_BASE_URL': 'http://broker/'})
201-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
201+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
202202
@patch("pact.verify_wrapper.isfile", return_value=True)
203203
def test_broker_creds_from_env_var(self, mock_isfile, mock_wrapper):
204204
mock_wrapper.return_value = 0, None
@@ -219,7 +219,7 @@ def test_broker_creds_from_env_var(self, mock_isfile, mock_wrapper):
219219
publish_verification_results=False,
220220
include_wip_pacts_since=None)
221221

222-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
222+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
223223
@patch("pact.verify_wrapper.isfile", return_value=True)
224224
def test_all_url_options(self, mock_isfile, mock_wrapper):
225225
mock_wrapper.return_value = 0, None
@@ -270,7 +270,7 @@ def test_all_url_options(self, mock_isfile, mock_wrapper):
270270
publish_verification_results=False,
271271
include_wip_pacts_since=None)
272272

273-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
273+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
274274
def test_all_broker_options(self, mock_wrapper):
275275
mock_wrapper.return_value = 0, None
276276
result = self.runner.invoke(verify.main, [

tests/test_verifier.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ def setUp(self):
2222
provider_base_url="http://localhost:8888")
2323

2424
self.mock_wrapper = patch.object(
25-
VerifyWrapper, 'call_verify').start()
25+
VerifyWrapper, 'verify').start()
2626

2727
def test_version(self):
2828
self.assertEqual(self.verifier.version(), "0.0.0")
2929

30-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
30+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
3131
@patch('pact.verifier.path_exists', return_value=True)
3232
def test_verifier_with_provider_and_files(self, mock_path_exists, mock_wrapper):
3333
mock_wrapper.return_value = (True, 'some logs')
@@ -47,7 +47,7 @@ def test_verifier_with_provider_and_files(self, mock_path_exists, mock_wrapper):
4747
enable_pending=False,
4848
include_wip_pacts_since=None)
4949

50-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
50+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
5151
@patch('pact.verifier.path_exists', return_value=True)
5252
def test_verifier_with_provider_and_files_passes_consumer_selctors(self, mock_path_exists, mock_wrapper):
5353
mock_wrapper.return_value = (True, 'some logs')
@@ -79,7 +79,7 @@ def test_verifier_with_provider_and_files_passes_consumer_selctors(self, mock_pa
7979
def test_validate_on_publish_results(self):
8080
self.assertRaises(Exception, self.verifier.verify_pacts, 'path/to/pact1', publish=True)
8181

82-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
82+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
8383
@patch('pact.verifier.path_exists', return_value=True)
8484
def test_publish_on_success(self, mock_path_exists, mock_wrapper):
8585
mock_wrapper.return_value = (True, 'some logs')
@@ -104,7 +104,7 @@ def test_raises_error_on_missing_pact_files(self, mock_path_exists):
104104

105105
mock_path_exists.assert_called_with('path/to/pact2')
106106

107-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify", return_value=(0, None))
107+
@patch("pact.verify_wrapper.VerifyWrapper.verify", return_value=(0, None))
108108
@patch('pact.verifier.expand_directories', return_value=['./pacts/pact1', './pacts/pact2'])
109109
@patch('pact.verifier.path_exists', return_value=True)
110110
def test_expand_directories_called_for_pacts(self, mock_path_exists, mock_expand_dir, mock_wrapper):
@@ -113,7 +113,7 @@ def test_expand_directories_called_for_pacts(self, mock_path_exists, mock_expand
113113

114114
mock_expand_dir.assert_called_once()
115115

116-
@patch('pact.verify_wrapper.VerifyWrapper.call_verify', return_value=(0, None))
116+
@patch('pact.verify_wrapper.VerifyWrapper.verify', return_value=(0, None))
117117
def test_passes_enable_pending_flag_value(self, mock_wrapper):
118118
for value in (True, False):
119119
with self.subTest(value=value):
@@ -124,7 +124,7 @@ def test_passes_enable_pending_flag_value(self, mock_wrapper):
124124
mock_wrapper.call_args.kwargs,
125125
)
126126

127-
@patch('pact.verify_wrapper.VerifyWrapper.call_verify', return_value=(0, None))
127+
@patch('pact.verify_wrapper.VerifyWrapper.verify', return_value=(0, None))
128128
@patch('pact.verifier.path_exists', return_value=True)
129129
def test_passes_include_wip_pacts_since_value(self, mock_path_exists, mock_wrapper):
130130
self.verifier.verify_pacts('any.json', include_wip_pacts_since='2018-01-01')
@@ -142,7 +142,7 @@ def setUp(self):
142142
provider_base_url="http://localhost:8888")
143143

144144
self.mock_wrapper = patch.object(
145-
VerifyWrapper, 'call_verify').start()
145+
VerifyWrapper, 'verify').start()
146146
self.broker_username = 'broker_username'
147147
self.broker_password = 'broker_password'
148148
self.broker_url = 'http://broker'
@@ -154,7 +154,7 @@ def setUp(self):
154154
'broker_token': 'token'
155155
}
156156

157-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
157+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
158158
def test_verifier_with_broker(self, mock_wrapper):
159159

160160
mock_wrapper.return_value = (True, 'some value')
@@ -174,7 +174,7 @@ def test_verifier_with_broker(self, mock_wrapper):
174174
enable_pending=False,
175175
include_wip_pacts_since=None)
176176

177-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
177+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
178178
def test_verifier_and_pubish_with_broker(self, mock_wrapper):
179179

180180
mock_wrapper.return_value = (True, 'some value')
@@ -197,7 +197,7 @@ def test_verifier_and_pubish_with_broker(self, mock_wrapper):
197197
provider_app_version='1.0.0',
198198
)
199199

200-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
200+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
201201
def test_verifier_with_broker_passes_consumer_selctors(self, mock_wrapper):
202202

203203
mock_wrapper.return_value = (True, 'some value')
@@ -226,7 +226,7 @@ def test_verifier_with_broker_passes_consumer_selctors(self, mock_wrapper):
226226
consumer_selectors=['{"tag": "main", "latest": true}',
227227
'{"tag": "test", "latest": false}'])
228228

229-
@patch("pact.verify_wrapper.VerifyWrapper.call_verify")
229+
@patch("pact.verify_wrapper.VerifyWrapper.verify")
230230
@patch('pact.verifier.path_exists', return_value=True)
231231
def test_publish_on_success(self, mock_path_exists, mock_wrapper):
232232
mock_wrapper.return_value = (True, 'some logs')
@@ -246,7 +246,7 @@ def test_publish_on_success(self, mock_path_exists, mock_wrapper):
246246
enable_pending=False,
247247
include_wip_pacts_since=None)
248248

249-
@patch('pact.verify_wrapper.VerifyWrapper.call_verify', return_value=(0, None))
249+
@patch('pact.verify_wrapper.VerifyWrapper.verify', return_value=(0, None))
250250
def test_passes_enable_pending_flag_value(self, mock_wrapper):
251251
for value in (True, False):
252252
with self.subTest(value=value):
@@ -257,7 +257,7 @@ def test_passes_enable_pending_flag_value(self, mock_wrapper):
257257
mock_wrapper.call_args.kwargs,
258258
)
259259

260-
@patch('pact.verify_wrapper.VerifyWrapper.call_verify', return_value=(0, None))
260+
@patch('pact.verify_wrapper.VerifyWrapper.verify', return_value=(0, None))
261261
@patch('pact.verifier.path_exists', return_value=True)
262262
def test_passes_include_wip_pacts_since_value(self, mock_path_exists, mock_wrapper):
263263
self.verifier.verify_with_broker(include_wip_pacts_since='2018-01-01')

0 commit comments

Comments
 (0)