Skip to content

Commit 4440022

Browse files
Merge pull request #203 from pact-foundation/fix/version_confusion
fix: introduced and renamed specification version
2 parents 64d7bdc + 9cac2d7 commit 4440022

File tree

4 files changed

+20
-18
lines changed

4 files changed

+20
-18
lines changed

pact/consumer.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def has_pact_with(self, provider, host_name='localhost', port=1234,
4949
cors=False, publish_to_broker=False,
5050
broker_base_url=None, broker_username=None,
5151
broker_password=None, broker_token=None, pact_dir=None,
52-
version='2.0.0', file_write_mode='overwrite'):
52+
specification_version='2.0.0',
53+
file_write_mode='overwrite'):
5354
"""
5455
Create a contract between the `provider` and this consumer.
5556
@@ -108,8 +109,8 @@ def has_pact_with(self, provider, host_name='localhost', port=1234,
108109
:param pact_dir: Directory where the resulting pact files will be
109110
written. Defaults to the current directory.
110111
:type pact_dir: str
111-
:param version: The Pact Specification version to use, defaults to
112-
'2.0.0'.
112+
:param specification_version: The Pact Specification version to use.
113+
Defaults to '2.0.0'.
113114
:type version: str
114115
:param file_write_mode: How the mock service should apply multiple
115116
calls to .verify(). Pass 'overwrite' to overwrite the generated
@@ -142,5 +143,5 @@ def has_pact_with(self, provider, host_name='localhost', port=1234,
142143
cors=cors,
143144
pact_dir=pact_dir,
144145
publish_to_broker=publish_to_broker,
145-
version=version,
146+
specification_version=specification_version,
146147
file_write_mode=file_write_mode)

pact/pact.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(
5858
broker_password=None,
5959
broker_token=None,
6060
pact_dir=None,
61-
version='2.0.0',
61+
specification_version='2.0.0',
6262
file_write_mode='overwrite',
6363
):
6464
"""
@@ -112,9 +112,9 @@ def __init__(
112112
:param pact_dir: Directory where the resulting pact files will be
113113
written. Defaults to the current directory.
114114
:type pact_dir: str
115-
:param version: The Pact Specification version to use, defaults to
115+
:param specification_version: The Pact Specification version to use, defaults to
116116
'2.0.0'.
117-
:type version: str
117+
:type version: str of the consumer version.
118118
:param file_write_mode: `overwrite` or `merge`. Use `merge` when
119119
running multiple mock service instances in parallel for the same
120120
consumer/provider pair. Ensure the pact file is deleted before
@@ -142,7 +142,7 @@ def __init__(
142142
self.ssl = ssl
143143
self.sslcert = sslcert
144144
self.sslkey = sslkey
145-
self.version = version
145+
self.specification_version = specification_version
146146
self._interactions = []
147147
self._process = None
148148

@@ -196,7 +196,7 @@ def start_service(self):
196196
"--log", f"{self.log_dir}/pact-mock-service.log",
197197
"--pact-dir", self.pact_dir,
198198
"--pact-file-write-mode", self.file_write_mode,
199-
f"--pact-specification-version={self.version}",
199+
f"--pact-specification-version={self.specification_version}",
200200
"--consumer", self.consumer.name,
201201
"--provider", self.provider.name,
202202
]
@@ -235,7 +235,7 @@ def stop_service(self):
235235
if self.publish_to_broker:
236236
self.publish(
237237
self.consumer.name,
238-
self.version,
238+
self.consumer.version,
239239
tag_with_git_branch=self.consumer.tag_with_git_branch,
240240
consumer_tags=self.consumer.tags,
241241
)

tests/test_consumer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_has_pact_with(self):
2626
consumer=self.consumer, provider=self.provider,
2727
host_name='localhost', port=1234,
2828
log_dir=None, ssl=False, sslcert=None, sslkey=None,
29-
cors=False, pact_dir=None, version='2.0.0',
29+
cors=False, pact_dir=None, specification_version='2.0.0',
3030
broker_base_url=None, publish_to_broker=False,
3131
broker_username=None, broker_password=None,
3232
broker_token=None, file_write_mode='overwrite')
@@ -35,15 +35,15 @@ def test_has_pact_with_customer_all_options(self):
3535
result = self.consumer.has_pact_with(
3636
self.provider, host_name='example.com', port=1111,
3737
log_dir='/logs', ssl=True, sslcert='/ssl.cert', sslkey='ssl.pem',
38-
cors=True, pact_dir='/pacts', version='3.0.0',
38+
cors=True, pact_dir='/pacts', specification_version='3.0.0',
3939
file_write_mode='merge')
4040

4141
self.assertIs(result, self.mock_service.return_value)
4242
self.mock_service.assert_called_once_with(
4343
consumer=self.consumer, provider=self.provider,
4444
host_name='example.com', port=1111,
4545
log_dir='/logs', ssl=True, sslcert='/ssl.cert', sslkey='ssl.pem',
46-
cors=True, pact_dir='/pacts', version='3.0.0',
46+
cors=True, pact_dir='/pacts', specification_version='3.0.0',
4747
broker_base_url=None, publish_to_broker=False,
4848
broker_username=None, broker_password=None, broker_token=None,
4949
file_write_mode='merge')

tests/test_pact.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ def test_init_defaults(self):
3535
self.assertIsNone(target.sslcert)
3636
self.assertIsNone(target.sslkey)
3737
self.assertEqual(target.uri, 'http://localhost:1234')
38-
self.assertEqual(target.version, '2.0.0')
38+
self.assertEqual(target.specification_version, '2.0.0')
3939
self.assertEqual(len(target._interactions), 0)
4040

4141
def test_init_custom_mock_service(self):
4242
target = Pact(
4343
self.consumer, self.provider, host_name='192.168.1.1', port=8000,
4444
log_dir='/logs', ssl=True, sslcert='/ssl.cert', sslkey='/ssl.pem',
45-
cors=True, pact_dir='/pacts', version='3.0.0',
45+
cors=True, pact_dir='/pacts', specification_version='3.0.0',
4646
file_write_mode='merge')
4747

4848
self.assertIs(target.consumer, self.consumer)
@@ -56,7 +56,7 @@ def test_init_custom_mock_service(self):
5656
self.assertEqual(target.sslcert, '/ssl.cert')
5757
self.assertEqual(target.sslkey, '/ssl.pem')
5858
self.assertEqual(target.uri, 'https://192.168.1.1:8000')
59-
self.assertEqual(target.version, '3.0.0')
59+
self.assertEqual(target.specification_version, '3.0.0')
6060
self.assertEqual(target.file_write_mode, 'merge')
6161
self.assertEqual(len(target._interactions), 0)
6262

@@ -371,7 +371,7 @@ def test_stop_windows(self):
371371
ruby_exe = Mock(spec=Process)
372372
self.mock_Process.return_value.children.return_value = [ruby_exe]
373373
self.mock_Pid_exists.return_value = False
374-
pact = Pact(Consumer('consumer'), Provider('provider'), publish_to_broker=True)
374+
pact = Pact(Consumer('consumer', version='abc'), Provider('provider'), publish_to_broker=True)
375375
pact._process = Mock(spec=Popen, pid=999)
376376
pact.stop_service()
377377

@@ -383,7 +383,8 @@ def test_stop_windows(self):
383383
ruby_exe.terminate.assert_called_once_with()
384384
self.mock_Process.return_value.wait.assert_called_once_with()
385385
self.mock_Pid_exists.assert_called_once_with(999)
386-
self.mock_publish.assert_called_once()
386+
self.mock_publish.assert_called_once_with(
387+
pact, 'consumer', 'abc', consumer_tags=None, tag_with_git_branch=False)
387388

388389
def test_stop_fails_posix(self):
389390
self.mock_platform.return_value = 'Linux'

0 commit comments

Comments
 (0)