mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
Refactored unit test for matchers
This commit is contained in:
@@ -1,30 +1,41 @@
|
||||
import itertools
|
||||
|
||||
from vcr import matchers
|
||||
from vcr import request
|
||||
|
||||
|
||||
def test_method():
|
||||
req_get = request.Request('GET', 'http://google.com:80/', '', {})
|
||||
assert True == matchers.method(req_get, req_get)
|
||||
|
||||
req_get1 = request.Request('GET', 'https://httpbin.org:80/', '', {})
|
||||
assert True == matchers.method(req_get, req_get1)
|
||||
|
||||
req_post = request.Request('POST', 'http://google.com:80/', '', {})
|
||||
assert False == matchers.method(req_get, req_post)
|
||||
# the dict contains requests with corresponding to its key difference
|
||||
# with 'base' request.
|
||||
REQUESTS = {
|
||||
'base': request.Request('GET', 'http://host.com:80/', '', {}),
|
||||
'method': request.Request('POST', 'http://host.com:80/', '', {}),
|
||||
'protocol': request.Request('GET', 'https://host.com:80/', '', {}),
|
||||
'host': request.Request('GET', 'http://another-host.com:80/', '', {}),
|
||||
'port': request.Request('GET', 'http://host.com:90/', '', {}),
|
||||
'path': request.Request('GET', 'http://host.com:80/a', '', {}),
|
||||
'query': request.Request('GET', 'http://host.com:80/?a=b', '', {}),
|
||||
}
|
||||
|
||||
|
||||
def test_url():
|
||||
req1 = request.Request('GET', 'http://google.com:80/', '', {})
|
||||
assert True == matchers.url(req1, req1)
|
||||
def assert_matcher(matcher_name):
|
||||
matcher = getattr(matchers, matcher_name)
|
||||
for k1, k2 in itertools.permutations(REQUESTS, 2):
|
||||
matched = matcher(REQUESTS[k1], REQUESTS[k2])
|
||||
if matcher_name in {k1, k2}:
|
||||
assert not matched
|
||||
else:
|
||||
assert matched
|
||||
|
||||
req2 = request.Request('GET', 'https://httpbin.org:80/', '', {})
|
||||
assert False == matchers.url(req1, req2)
|
||||
|
||||
req1_post = request.Request('POST', 'http://google.com:80/', '', {})
|
||||
assert True == matchers.url(req1, req1_post)
|
||||
def test_url_matcher():
|
||||
for k1, k2 in itertools.permutations(REQUESTS, 2):
|
||||
matched = matchers.url(REQUESTS[k1], REQUESTS[k2])
|
||||
if {k1, k2} != {'base', 'method'}:
|
||||
assert not matched
|
||||
else:
|
||||
assert matched
|
||||
|
||||
req_query_string = request.Request(
|
||||
'GET', 'http://google.com:80/?p1=t1&p2=t2', '', {})
|
||||
req_query_string1 = request.Request(
|
||||
'GET', 'http://google.com:80/?p2=t2&p1=t1', '', {})
|
||||
assert False == matchers.url(req_query_string, req_query_string1)
|
||||
|
||||
def test_metchers():
|
||||
assert_matcher('method')
|
||||
#assert_matcher('method')
|
||||
#assert_matcher('method')
|
||||
|
||||
Reference in New Issue
Block a user