From 6cca703eeef9f55a7c694b922cacdb2d872f705f Mon Sep 17 00:00:00 2001 From: Max Shytikov Date: Mon, 7 Apr 2014 00:55:06 +0200 Subject: [PATCH] Refactored unit test for matchers --- tests/unit/test_matchers.py | 55 ++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/tests/unit/test_matchers.py b/tests/unit/test_matchers.py index 056fef7..3bc8846 100644 --- a/tests/unit/test_matchers.py +++ b/tests/unit/test_matchers.py @@ -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')