Skip to content

Commit 68e792a

Browse files
Merge pull request #93 from francoiscampbell/pass_file_write_mode
Pass file_write_mode to Pact
2 parents 6d39609 + 68527e0 commit 68e792a

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

pact/consumer.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ def __init__(self, name, service_cls=Pact):
3333

3434
def has_pact_with(self, provider, host_name='localhost', port=1234,
3535
log_dir=None, ssl=False, sslcert=None, sslkey=None,
36-
cors=False, pact_dir=None, version='2.0.0'):
36+
cors=False, pact_dir=None, version='2.0.0',
37+
file_write_mode='overwrite'):
3738
"""
3839
Create a contract between the `provider` and this consumer.
3940
@@ -80,6 +81,13 @@ def has_pact_with(self, provider, host_name='localhost', port=1234,
8081
:param version: The Pact Specification version to use, defaults to
8182
'2.0.0'.
8283
:type version: str
84+
:param file_write_mode: How the mock service should apply multiple
85+
calls to .verify(). Pass 'overwrite' to overwrite the generated
86+
JSON file on every call to .verify() or pass 'merge' to merge all
87+
interactions into the same JSON file. When using 'merge', make
88+
sure to delete any existing JSON file before calling .verify()
89+
for the first time. Defaults to 'overwrite'.
90+
:type version: str
8391
:return: A Pact object which you can use to define the specific
8492
interactions your code will have with the provider.
8593
:rtype: pact.Pact
@@ -99,4 +107,5 @@ def has_pact_with(self, provider, host_name='localhost', port=1234,
99107
sslkey=sslkey,
100108
cors=cors,
101109
pact_dir=pact_dir,
102-
version=version)
110+
version=version,
111+
file_write_mode=file_write_mode)

pact/test/test_consumer.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,23 @@ def test_has_pact_with(self):
2525
consumer=self.consumer, provider=self.provider,
2626
host_name='localhost', port=1234,
2727
log_dir=None, ssl=False, sslcert=None, sslkey=None,
28-
cors=False, pact_dir=None, version='2.0.0')
28+
cors=False, pact_dir=None, version='2.0.0',
29+
file_write_mode='overwrite')
2930

3031
def test_has_pact_with_customer_all_options(self):
3132
result = self.consumer.has_pact_with(
3233
self.provider, host_name='example.com', port=1111,
3334
log_dir='/logs', ssl=True, sslcert='/ssl.cert', sslkey='ssl.pem',
34-
cors=True, pact_dir='/pacts', version='3.0.0')
35+
cors=True, pact_dir='/pacts', version='3.0.0',
36+
file_write_mode='merge')
3537

3638
self.assertIs(result, self.mock_service.return_value)
3739
self.mock_service.assert_called_once_with(
3840
consumer=self.consumer, provider=self.provider,
3941
host_name='example.com', port=1111,
4042
log_dir='/logs', ssl=True, sslcert='/ssl.cert', sslkey='ssl.pem',
41-
cors=True, pact_dir='/pacts', version='3.0.0')
43+
cors=True, pact_dir='/pacts', version='3.0.0',
44+
file_write_mode='merge')
4245

4346
def test_has_pact_with_not_a_provider(self):
4447
with self.assertRaises(ValueError):

requirements_dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
Click>=2.0.0,<=6.7
12
Flask==0.11.1
23
configparser==3.5.0
34
codecov==2.0.5

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def read(filename):
109109

110110

111111
dependencies = [
112-
'click>=2.0.0',
112+
'click>=2.0.0,<=6.7',
113113
'psutil>=2.0.0',
114114
'requests>=2.5.0',
115115
'six>=1.9.0',

0 commit comments

Comments
 (0)