Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Meet Mangukiya
@meetmangukiya
I tried
class Github(unittest.TestCase):
    @vcr.use_cassette('github.yaml')
    def setUp(self):
        self.gh = github3.GitHub(token=os.environ.get('GH_TOKEN', ''))

    @vcr.use_cassette('test_organization.yaml')
    def test_organizatiton(self):
        assert self.gh.organization('coala').name == 'name'
but it seems that self.gh turns out as a NoneType object
when called the test suite without the env var
Meet Mangukiya
@meetmangukiya
I think vcr doesn't hijeck requests session of github3 ?
Liam
@liamhession
Does anyone know if there is a practical limit to the size of cassettes?
I'm trying to determine if the extremely slow loading time on my call to vcr.use_cassette(path...) is due to the cassette file being 70 MB
Or maybe i have some other problem
Liam
@liamhession
@graingert do you have any idea about cassette size limits? Have not found anything in the docs
Thomas Grainger
@graingert
liamhession: probably about 4GiB
liamhession: depends on your filesystem thoug
liamhession: I'm going to point my finger at yaml
or pyaml
liamhession: and it's going to continue pointing in that vague direction until you can prove it's not them ;)
Liam
@liamhession
Yeah, would those be the slowest portion?
Thomas Grainger
@graingert
🤷
they've got to parse the damn thing
Liam
@liamhession
That is where the code seemed to be whenever I Ctrl-C'd the slow-loading attempts to use a cassette
Thomas Grainger
@graingert
liamhession: how did it blow up to that size?
Liam
@liamhession
Requests with large responses. This is for a scraper of restaurant menu information
Thomas Grainger
@graingert
liamhession: don't test at that level then
liamhession: pyvcr is a cruise missile for http tests
liamhession: you should create a function that parses the bit you want out of some web content
then test assert parses_the_bit_you_want_out_of_some_web_content(some_web_content) == the_bit_you_want
liamhession: it's always best to separate all of your IO code from the rest of your code
Liam
@liamhession
Thanks for the responses, @graingert. I'll have to tweak how i'm using vcr definitely
Meet Mangukiya
@meetmangukiya
even though a request is recorded, it says it isn't recorded and raises cannot overwrite error
Error:
vcr.errors.CannotOverwriteExistingCassetteException: No match for the request (<Request (GET) http://webservices.coala.io/list/bears>) was found. Can't overwrite existing cassette ('tests/cassettes/coatils_list_bears.yaml') in your current record mode ('once').
one can see it is the first interaction
what is the problem here :/
Tomasz Kontusz
@ktosiek
Hi! I'm the maintainer of a pytest plugin for VCR.py: https://github.com/ktosiek/pytest-vcr/ - I wanted to ask if it's common to operate on an active cassette directly?
is there anything interesting that can be done with an open cassette object except for closing it?
Tomasz Kontusz
@ktosiek
I have to go to sleep now, but if anyone has an opinion on that (or uses self.cassette with vcrpy-unittest for anything) please either ping me or comment on ktosiek/pytest-vcr#5
Reece Hart
@reece
Anyone have an example of using vcrpy with doctests and pytest?
Tomasz Kontusz
@ktosiek
@reece you can use https://pypi.python.org/pypi/pytest-vcr and getfixture('vcr_cassette')
see also https://docs.pytest.org/en/latest/doctest.html for more info on using doctests with pytest
(disclaimer: I've made that plugin)
Reece Hart
@reece
Thanks @ktosiek. Following up 1-1 with another question.
Ivan Malison
@IvanMalison
@ktosiek yes
but only if you want to do really shady stuff. It's actually available mostly for testing
I'm pretty sure that I added that a while back
Gavin Schneider
@gschneider-r7
Hi there - I just started using vcrpy and pytest-vcr on an inherited project that is py2/3 compatible using the future package, and I am wondering if there is a trick to getting this to work correctly on py2 in this case. The short story is that I am getting urlopen error [Errno 61] Connection refused exceptions in py2 while py3 correctly replays the cassette (I did generate the cassette in py3 if that matters). The project is using urllib, and future was added to support py2/3 compatibility. It seems like in py2 vcr isn't wrapping/patching correctly. Anyone have experience with that or suggestions on how to deal with that? I am basically using defaults for everything here. Here is an extraction of the code (not from the test itself) that throws the exception (trimmed for brevity and relevance):
from __future__ import (absolute_import, division, print_function, unicode_literals)
from builtins import object
from future import standard_library
standard_library.install_aliases()
import urllib.request

request = urllib.request.Request(uri, post_data, headers)
response = urllib.request.urlopen(request)
Gavin Schneider
@gschneider-r7
If it helps, you can see the travis-ci results here https://travis-ci.org/rapid7/nexpose-client-python/builds/292372011 but you'll probably need to look into the project code to see more useful details, and it's ... not very pretty :neutral_face:
Gavin Schneider
@gschneider-r7

guess its due to the way python-future imports the urllib stuff. I am able to make it work by importing like this (yuck...):

if sys.version_info > (3, 3):
    from urllib.parse import urlparse, urlencode
    from urllib.request import urlopen, Request
    from urllib.error import HTTPError
else:
    from urlparse import urlparse
    from urllib import urlencode
    from urllib2 import urlopen, Request, HTTPError

the try...except way of doing it didn't work, but maybe I need to play around with the future stuff some more

I can probably just switch to the requests lib instead :smile:
Devarajegowda
@Devarajegowda
Hi all,
I just started using vcr play & I am able to record responses when I use urllib api's but same is not working for requests api. Can anyone please help me out here, is vcr not supported for requests api

from urllib.request import urlopen
from requests import request

print("deva")
with vcr.use_cassette('fixtures/vcr_cassettes/deva.yaml') as cass:
r = request('get', 'http://jsonplaceholder.typicode.com/')

with vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml') as cass:
response = urlopen('http://www.zombo.com/').read()
assert len(cass) == 1

shmuelamar
@shmuelamar
hey everyone,
great library saves me a lot of troubles while testing :smile:
my question is when do you plan next release? I'm interested on #326 .
if there is anything i can do to help please LMK, thanks!
Varun Kruthiventi
@saivarunk
Hello all,
I was trying to mock S3 Boto requests. While using vcr, I see that the boto requests are not getting captured by vcr. Any idea ?
vcr version is 2.0.1