def test_vcr_use_cassette(): record_mode = mock.Mock() test_vcr = VCR(record_mode=record_mode) with mock.patch( 'vcr.cassette.Cassette.load', return_value=mock.MagicMock(inject=False) ) as mock_cassette_load: @test_vcr.use_cassette('test') def function(): pass assert mock_cassette_load.call_count == 0 function() assert mock_cassette_load.call_args[1]['record_mode'] is record_mode # Make sure that calls to function now use cassettes with the # new filter_header_settings test_vcr.record_mode = mock.Mock() function() assert mock_cassette_load.call_args[1]['record_mode'] == test_vcr.record_mode # Ensure that explicitly provided arguments still supercede # those on the vcr. new_record_mode = mock.Mock() with test_vcr.use_cassette('test', record_mode=new_record_mode) as cassette: assert cassette.record_mode == new_record_mode
def test_vcr_use_cassette(): record_mode = mock.Mock() test_vcr = VCR(record_mode=record_mode) with mock.patch( 'vcr.cassette.Cassette.load', return_value=mock.MagicMock(inject=False)) as mock_cassette_load: @test_vcr.use_cassette('test') def function(): pass assert mock_cassette_load.call_count == 0 function() assert mock_cassette_load.call_args[1]['record_mode'] is record_mode # Make sure that calls to function now use cassettes with the # new filter_header_settings test_vcr.record_mode = mock.Mock() function() assert mock_cassette_load.call_args[1][ 'record_mode'] == test_vcr.record_mode # Ensure that explicitly provided arguments still supercede # those on the vcr. new_record_mode = mock.Mock() with test_vcr.use_cassette('test', record_mode=new_record_mode) as cassette: assert cassette.record_mode == new_record_mode
def test_before_record_response_as_filter(): request = Request('GET', '/', '', {}) response = object() # just can't be None # Prevent actually saving the cassette with mock.patch('vcr.cassette.FilesystemPersister.save_cassette'): filter_all = mock.Mock(return_value=None) vcr = VCR(before_record_response=filter_all) with vcr.use_cassette('test') as cassette: cassette.append(request, response) assert cassette.data == [] assert not cassette.dirty
def test_vcr_path_transformer(): # Regression test for #199 # Prevent actually saving the cassette with mock.patch('vcr.cassette.save_cassette'): # Baseline: path should be unchanged vcr = VCR() with vcr.use_cassette('test') as cassette: assert cassette._path == 'test' # Regression test: path_transformer=None should do the same. vcr = VCR(path_transformer=None) with vcr.use_cassette('test') as cassette: assert cassette._path == 'test' # and it should still work with cassette_library_dir vcr = VCR(cassette_library_dir='/foo') with vcr.use_cassette('test') as cassette: assert cassette._path == '/foo/test'
def test_vcr_path_transformer(): # Regression test for #199 # Prevent actually saving the cassette with mock.patch("vcr.cassette.FilesystemPersister.save_cassette"): # Baseline: path should be unchanged vcr = VCR() with vcr.use_cassette("test") as cassette: assert cassette._path == "test" # Regression test: path_transformer=None should do the same. vcr = VCR(path_transformer=None) with vcr.use_cassette("test") as cassette: assert cassette._path == "test" # and it should still work with cassette_library_dir vcr = VCR(cassette_library_dir="/foo") with vcr.use_cassette("test") as cassette: assert os.path.abspath( cassette._path) == os.path.abspath("/foo/test")
def test_vcr_before_record_response_iterable(): # Regression test for #191 request = Request('GET', '/', '', {}) response = object() # just can't be None # Prevent actually saving the cassette with mock.patch('vcr.cassette.save_cassette'): # Baseline: non-iterable before_record_response should work mock_filter = mock.Mock() vcr = VCR(before_record_response=mock_filter) with vcr.use_cassette('test') as cassette: assert mock_filter.call_count == 0 cassette.append(request, response) assert mock_filter.call_count == 1 # Regression test: iterable before_record_response should work too mock_filter = mock.Mock() vcr = VCR(before_record_response=(mock_filter,)) with vcr.use_cassette('test') as cassette: assert mock_filter.call_count == 0 cassette.append(request, response) assert mock_filter.call_count == 1
def test_vcr_before_record_response_iterable(): # Regression test for #191 request = Request('GET', '/', '', {}) response = object() # just can't be None # Prevent actually saving the cassette with mock.patch('vcr.cassette.save_cassette'): # Baseline: non-iterable before_record_response should work mock_filter = mock.Mock() vcr = VCR(before_record_response=mock_filter) with vcr.use_cassette('test') as cassette: assert mock_filter.call_count == 0 cassette.append(request, response) assert mock_filter.call_count == 1 # Regression test: iterable before_record_response should work too mock_filter = mock.Mock() vcr = VCR(before_record_response=(mock_filter, )) with vcr.use_cassette('test') as cassette: assert mock_filter.call_count == 0 cassette.append(request, response) assert mock_filter.call_count == 1