From 9092b34dd18b8e3217b990cf93bd247f4439fe38 Mon Sep 17 00:00:00 2001 From: Petr Bulusek Date: Wed, 9 Aug 2017 14:25:10 +0200 Subject: [PATCH 1/5] register custom persister fix --- tests/integration/test_register_persister.py | 25 ++++++++++++++++---- vcr/config.py | 1 + vcr/persisters/filesystem.py | 4 ++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py index 64e20b6..65b9020 100644 --- a/tests/integration/test_register_persister.py +++ b/tests/integration/test_register_persister.py @@ -10,10 +10,27 @@ import vcr from vcr.persisters.filesystem import FilesystemPersister +class CustomFilesystemPersister(object): + """ + like default FilesystemPersister but + adds .test extension to cassette file + """ + @staticmethod + def load_cassette(cassette_path, serializer): + cassette_path += '.test' + return FilesystemPersister.load_cassette(cassette_path, serializer) + + @staticmethod + def save_cassette(cassette_path, cassette_dict, serializer): + cassette_path += '.test' + FilesystemPersister.save_cassette(cassette_path, cassette_dict, + serializer) + + def test_save_cassette_with_custom_persister(tmpdir, httpbin): '''Ensure you can save a cassette using custom persister''' my_vcr = vcr.VCR() - my_vcr.register_persister(FilesystemPersister) + my_vcr.register_persister(CustomFilesystemPersister) # Check to make sure directory doesnt exist assert not os.path.exists(str(tmpdir.join('nonexistent'))) @@ -23,7 +40,7 @@ def test_save_cassette_with_custom_persister(tmpdir, httpbin): urlopen(httpbin.url).read() # Callback should have made the file and the directory - assert os.path.exists(str(tmpdir.join('nonexistent', 'cassette.yml'))) + assert os.path.exists(str(tmpdir.join('nonexistent', 'cassette.yml.test'))) def test_load_cassette_with_custom_persister(tmpdir, httpbin): @@ -31,9 +48,9 @@ def test_load_cassette_with_custom_persister(tmpdir, httpbin): Ensure you can load a cassette using custom persister ''' my_vcr = vcr.VCR() - my_vcr.register_persister(FilesystemPersister) + my_vcr.register_persister(CustomFilesystemPersister) - test_fixture = str(tmpdir.join('synopsis.json')) + test_fixture = str(tmpdir.join('synopsis.json.test')) with my_vcr.use_cassette(test_fixture, serializer='json'): response = urlopen(httpbin.url).read() diff --git a/vcr/config.py b/vcr/config.py index 15ae459..cfc890d 100644 --- a/vcr/config.py +++ b/vcr/config.py @@ -145,6 +145,7 @@ class VCR(object): merged_config = { 'serializer': self._get_serializer(serializer_name), + 'persister': self.persister, 'match_on': self._get_matchers( tuple(matcher_names) + tuple(additional_matchers) ), diff --git a/vcr/persisters/filesystem.py b/vcr/persisters/filesystem.py index 43b52d4..6e50529 100644 --- a/vcr/persisters/filesystem.py +++ b/vcr/persisters/filesystem.py @@ -6,8 +6,8 @@ from ..serialize import serialize, deserialize class FilesystemPersister(object): - @classmethod - def load_cassette(cls, cassette_path, serializer): + @staticmethod + def load_cassette(cassette_path, serializer): try: with open(cassette_path) as f: cassette_content = f.read() From b753a491c95273217638fc873b49338c731a21a4 Mon Sep 17 00:00:00 2001 From: Petr Bulusek Date: Wed, 9 Aug 2017 14:44:39 +0200 Subject: [PATCH 2/5] revert PR unrelated change, better comment --- tests/integration/test_register_persister.py | 8 +++----- vcr/persisters/filesystem.py | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py index 65b9020..ff94a29 100644 --- a/tests/integration/test_register_persister.py +++ b/tests/integration/test_register_persister.py @@ -11,14 +11,12 @@ from vcr.persisters.filesystem import FilesystemPersister class CustomFilesystemPersister(object): - """ - like default FilesystemPersister but - adds .test extension to cassette file - """ + '''Behaves just like DefaultFilePersister but adds .test extension to the + cassette file''' @staticmethod def load_cassette(cassette_path, serializer): cassette_path += '.test' - return FilesystemPersister.load_cassette(cassette_path, serializer) + return FilesystemPersister().load_cassette(cassette_path, serializer) @staticmethod def save_cassette(cassette_path, cassette_dict, serializer): diff --git a/vcr/persisters/filesystem.py b/vcr/persisters/filesystem.py index 6e50529..43b52d4 100644 --- a/vcr/persisters/filesystem.py +++ b/vcr/persisters/filesystem.py @@ -6,8 +6,8 @@ from ..serialize import serialize, deserialize class FilesystemPersister(object): - @staticmethod - def load_cassette(cassette_path, serializer): + @classmethod + def load_cassette(cls, cassette_path, serializer): try: with open(cassette_path) as f: cassette_content = f.read() From d59efbc6e0575695aaeda6e86392d96be1f70ccd Mon Sep 17 00:00:00 2001 From: Petr Bulusek Date: Wed, 9 Aug 2017 15:18:00 +0200 Subject: [PATCH 3/5] Instantiating class not necessary. --- tests/integration/test_register_persister.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py index ff94a29..e4ea810 100644 --- a/tests/integration/test_register_persister.py +++ b/tests/integration/test_register_persister.py @@ -16,7 +16,7 @@ class CustomFilesystemPersister(object): @staticmethod def load_cassette(cassette_path, serializer): cassette_path += '.test' - return FilesystemPersister().load_cassette(cassette_path, serializer) + return FilesystemPersister.load_cassette(cassette_path, serializer) @staticmethod def save_cassette(cassette_path, cassette_dict, serializer): From 034aeb4f17a41b55afcd7a3fdfff537fd59efade Mon Sep 17 00:00:00 2001 From: Petr Bulusek Date: Fri, 11 Aug 2017 14:41:11 +0200 Subject: [PATCH 4/5] typo --- tests/integration/test_register_persister.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py index e4ea810..0d12fc2 100644 --- a/tests/integration/test_register_persister.py +++ b/tests/integration/test_register_persister.py @@ -11,8 +11,8 @@ from vcr.persisters.filesystem import FilesystemPersister class CustomFilesystemPersister(object): - '''Behaves just like DefaultFilePersister but adds .test extension to the - cassette file''' + '''Behaves just like default FilesystemPersister but adds .test extension + to the cassette file''' @staticmethod def load_cassette(cassette_path, serializer): cassette_path += '.test' @@ -27,6 +27,7 @@ class CustomFilesystemPersister(object): def test_save_cassette_with_custom_persister(tmpdir, httpbin): '''Ensure you can save a cassette using custom persister''' + import ipdb; ipdb.set_trace() my_vcr = vcr.VCR() my_vcr.register_persister(CustomFilesystemPersister) @@ -45,6 +46,7 @@ def test_load_cassette_with_custom_persister(tmpdir, httpbin): ''' Ensure you can load a cassette using custom persister ''' + import ipdb; ipdb.set_trace() my_vcr = vcr.VCR() my_vcr.register_persister(CustomFilesystemPersister) From 8cf8d3f69ccac3201da802ddac813b7433d3c25a Mon Sep 17 00:00:00 2001 From: Petr Bulusek Date: Sat, 12 Aug 2017 17:58:52 +0200 Subject: [PATCH 5/5] delete ipdb.set_trace --- tests/integration/test_register_persister.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py index 0d12fc2..758a1cf 100644 --- a/tests/integration/test_register_persister.py +++ b/tests/integration/test_register_persister.py @@ -27,7 +27,6 @@ class CustomFilesystemPersister(object): def test_save_cassette_with_custom_persister(tmpdir, httpbin): '''Ensure you can save a cassette using custom persister''' - import ipdb; ipdb.set_trace() my_vcr = vcr.VCR() my_vcr.register_persister(CustomFilesystemPersister) @@ -46,7 +45,6 @@ def test_load_cassette_with_custom_persister(tmpdir, httpbin): ''' Ensure you can load a cassette using custom persister ''' - import ipdb; ipdb.set_trace() my_vcr = vcr.VCR() my_vcr.register_persister(CustomFilesystemPersister)