summaryrefslogtreecommitdiff
path: root/tests/functional
Commit message (Collapse)AuthorAgeFilesLines
* typoGabriel Falcão2018-03-071-3/+4
|
* Update version classifiers (#329)Hugo2018-03-074-16/+16
| | | | | | | | * Ignore IDE metadata * Python 2.6 is EOL and was dropped in 2015 * Use automatic formatters
* Merge pull request #165 from akun/masterGabriel Falcão2017-02-161-0/+2
|\ | | | | Fixed an error when "Content-Length" is not int like
| * Fixed an error when "Content-Length" is not int likeakun2014-05-191-0/+2
| |
* | add a test for content-length header with callable bodyKonstantinos Koukopoulos2017-02-161-61/+20
| |
* | Update HTTP call recording to properly send headers being testedAndrew Gross2016-10-111-1/+5
| |
* | Merge pull request #169 from chris-martin/unittest_TestCase_decoratorGabriel Falcão2016-05-261-1/+68
|\ \ | | | | | | Decorate unittest.TestCase setUp/tearDown methods
| * | Decorate unittest.TestCase setUp/tearDown methodsChris Martin2014-05-231-1/+68
| |/ | | | | | | | | | | | | When the class being decorated by httprettified inherits from unittest.TestCase, enable HTTPretty in setUp rather than decorating each test separately. This lets users register their HTTP mock entries in setUp if they want.
* | Use body and headers when recording upstream calls.Bogdan Hodorog2016-04-062-3/+12
| |
* | making the functional tests a bit more permissiveGabriel Falcão2015-12-141-6/+7
| |
* | attempt to disable httpretty in the current process before spawning a subprocessGabriel Falcão2015-12-141-4/+7
| |
* | ignoring error when IOLoop has already startedGabriel Falcão2015-12-141-1/+4
| |
* | revamping docs + testsGabriel Falcão2015-12-138-47/+73
| |
* | Add priority argument to register_uri.Joshua Carp2015-03-131-0/+17
| | | | | | | | | | | | | | | | | | Matchers are stored in a dictionary and are checked in an unpredictable order. This can be a problem when multiple matchers match the same URI--for example, when using multiple regex matchers. This patch adds an optional an optional priority argument to register_uri to resolve this ambiguity. When matching a URI, matchers are sorted descending by priority, and the first match is used.
* | Merge pull request #170 from chris-martin/disallow-real-connectionsGabriel Falcão2014-12-111-1/+68
|\ \ | | | | | | Allow_net_connect, prevent real connections
| * | Allow_net_connect, prevent real connections (#157)Chris Martin2014-05-231-1/+68
| |/ | | | | | | | | | | | | Users can prevent all real connections by assigning HTTPretty.allow_net_connect = False. When a connection is blocked, UnmockedError is raised instead.
* | Fix bug that occurs when using custom schema/port/regexLuqmaan2014-04-031-0/+151
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reopens https://github.com/gabrielfalcao/HTTPretty/pull/145. Reopened as a new PR because Travis didn't seem to be running the correct tests. Removed the irrelevant changes, such as PEP8 and the `self.truesock.settimeout(0)` change. HTTPretty does not behave correctly when using regex matching, HTTPS and custom ports. When this scenario is triggered, a timeout/max retries exceeded error occurs. To duplicate run: ```python @httpretty.activate def exceed_max_retries_with_custom_port_and_https(): HTTPretty.register_uri( HTTPretty.GET, re.compile('https://api.yipit.com:1234/v1/deal;brand=(?P<brand_name>\w+)'), body='meow' ) uri = 'https://api.yipit.com:1234/v1/deal;brand=gap?first_name=chuck&last_name=norris' response = requests.get(uri) return response.content ``` Cause -- The combination of a regex URI, custom port, and HTTPS causes HTTPretty to get stuck at https://github.com/gabrielfalcao/HTTPretty/blob/2e814635fff916d3a8c246ca010245362266c89f/httpretty/core.py#L323 and eventually raise this error: ``` ConnectionError: HTTPSConnectionPool(host='api.yipit.com', port=1234): Max retries exceeded with url: /v1/deal;brand=gap?first_name=chuck&last_name=norris (Caused by <class 'socket.error'>: [Errno 36] Operation now in progress). ``` This error happens because URI schema's are reconstructed incorrectly during the URI matching. This should fail (http != https), but it does not! ```python @httpretty.activate def broken_reconstruction_of_uri_schema(): uri = 'api.yipit.com:1234/v1/deal' HTTPretty.register_uri(HTTPretty.GET, 'https://' + uri, body=lambda method, uri, headers: [200, headers, uri] ) response = requests.get(uri) expect(response.text).to.equal('http://' + uri) # incorrect! ``` Solution -- To correct the internal confusion between HTTP and HTTPS ports, we need to separate the two in our DEFAULT/POTENTIAL PORTS lists. When URIMatcher encounters a non-regex URI it uses URIInfo.from_uri to add the URIs port to the known ports. This behavior is now added for regex URIs. We now use the DEFAULT_PORTS lists in HTTPretty.reset() to reset the POTENTIAL_PORTS lists. Also, to avoid using the global keyword, we do an in-place reset with intersection_update. Added the following tests: - test_httpretty_should_work_with_non_standard_ports - test_httpretty_reset_by_switching_protocols_for_same_port - test_httpretty_should_allow_registering_regexes_with_port_and_give_a_proper_match_to_the_callback
* Unit test for mocking of octet stream and fix to the codeMatt Millar2014-03-141-0/+23
|
* Python 3: fix ↵Cyril Roelandt2014-01-211-2/+2
| | | | | | test_httpretty_should_allow_registering_regexes_with_streaming_responses() This was cause by the use of text strings instead of bytes.
* Python3: Fix test_recording_calls()Cyril Roelandt2014-01-211-1/+3
| | | | | | | | * in record_request, do not try to call json.dumps() on a dict() containing bytes; * in test_recording_calls(), do not hardcode the expected version of Tornado. There was a json.dumps(some_dict) and soe_dict had bytes values
* Fix relative importCyril Roelandt2014-01-211-1/+1
|
* Fix test that checks ID rather than equalityJamie Lennox2014-01-151-2/+2
| | | | | CPython does not guarantee that the id() of integers will be the same and they should therefore be tested with standard equality.
* Free version requirementsJamie Lennox2014-01-141-1/+2
| | | | | | | Tests should be run against the latest versions of libraries. Initially there was going to be a lower bound on requirements but it is unlikely that a situation will arise where a version is too out of date and can be added back then rather than having arbitrary minimums.
* creating new docsGabriel Falcao2013-10-101-0/+9
|
* improving test serverGabriel Falcao2013-10-071-2/+9
|
* more refactoringGabriel Falcao2013-10-071-4/+0
|
* temporarily solving #42 in a ugly way. Ready to refactor some codeGabriel Falcao2013-10-031-4/+2
|
* fixing the POST callback being called twice. closes #100, but might regress #42Gabriel Falcao2013-10-032-18/+35
|
* ignoring issue #100 in an unrelated functional test temporarilyGabriel Falcao2013-10-021-1/+3
|
* improving functional test for recordingGabriel Falcao2013-10-021-62/+29
|
* using threads in the base server instead of multiprocessing and removing the ↵Gabriel Falcao2013-10-011-4/+6
| | | | fake server's port from POTENTIAL_HTTP_PORTS in the end of the test
* teaching HTTPretty to playback recorded responses. refs #10Gabriel Falcao2013-10-012-1/+75
|
* teaching HTTPretty how to record requests. refs #10Gabriel Falcao2013-10-014-2/+175
|
* fixing bug when unicode query string had unicode chars. closes #36Gabriel Falcao2013-10-011-0/+8
|
* Merge pull request #89 from Gandi/masterGabriel Falcão2013-09-291-1/+3
|\ | | | | Don't duplicate http ports number
| * Don't duplicate http ports numberGuillaume Gauvrit2013-07-291-1/+3
| | | | | | | | | | Use a set instead of a list to store ports in the POTENTIAL_HTTP_PORTS. Restore it to its initial value every tests that modify it.
* | Add a way to match the querystrings.Alexis Métaireau2013-09-231-0/+22
|/ | | | If you want to register one URI with multiple querystrings, you can pass the "match_querystring" attribute to register_uri.
* Use the real socket if it's not HTTPGuillaume Gauvrit2013-07-251-0/+1
| | | | | | HTTPretty is about patching the socket for port 80 and 443 only, so, others ports may be mocked by another tool. DNS Client, for exemple should continue to works with the HTTPretty.
* Fixing bug of trailing slash. closes #73Gabriel Falcao2013-06-201-0/+9
|
* Merge pull request #61 from maxmind/masterGabriel Falcão2013-06-115-53/+53
|\ | | | | Remove 2.x style unicode literals
| * Whitespace and 'u' string fixesGregory Oschwald2013-05-065-53/+53
| |
| * Removed 2.x-style unicode literalsGregory Oschwald2013-05-065-48/+48
| |
* | add http OPTIONS verbGrigouze2013-05-231-1/+1
|/
* unicode fix for python 3Steve Pulec2013-05-031-6/+6
|
* no need for global anymoreSteve Pulec2013-05-031-1/+0
|
* make sure that streaming data for callbacks is received properlySteve Pulec2013-05-031-2/+17
|
* Merge pull request #56 from spulec/fix-querystring-with-regex2Gabriel Falcão2013-05-011-0/+18
|\ | | | | Remove querystring from full_url() and thus url regex matching (attempt #2)
| * regex matching should ignore querystringsSteve Pulec2013-04-301-0/+18
| |
* | fixes for other python versionSteve Pulec2013-05-011-2/+2
| |
* | Fixes streaming data requests when using regexes. Closes #42Steve Pulec2013-04-301-0/+23
|/