def test_warc_enabled(): # Note that this does not use the responses mocking framework, as it conflicts with the warc captures. # This makes a real request to Yahoo, so might fail. url = 'https://groups.yahoo.com/api/v1/groups/test/' yga = YahooGroupsAPI('test') writer = BufferWARCWriter(gzip=False) yga.set_warc_writer(writer) yga.get_json('HackGroupInfo') expected = [(url, 'response'), (url, 'request')] actual = [(record.rec_headers['WARC-Target-URI'], record.rec_type) for record in ArchiveIterator(writer.get_stream())] assert expected == actual
def test_get_json(yahoo_response, cookies): response = yahoo_response('v2/groups/groupname/files/a/2?param1=c¶m2=4', {'result': 'returned data'}) yga = YahooGroupsAPI('groupname', cookies) json = yga.get_json('files', 'a', 2, param1='c', param2=4) request = response.calls[0].request request_cookies = SimpleCookie() request_cookies.load(request.headers['Cookie']) assert dict(cookies) == {k: v.value for k, v in request_cookies.items()} assert json == {'result': 'returned data'}
def test_get_json(response, cookies): response.add( responses.GET, 'https://groups.yahoo.com/api/v2/groups/groupname/files/a/2?param1=c¶m2=4', json={'ygData': { 'result': 'returned data' }}) yga = YahooGroupsAPI('groupname', cookies) json = yga.get_json('files', 'a', 2, param1='c', param2=4) request = response.calls[0].request request_cookies = Cookie.SimpleCookie() request_cookies.load(request.headers['Cookie']) assert dict(cookies) == { k: v.value for k, v in request_cookies.iteritems() } assert json == {'result': 'returned data'}