aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/pytest-localserver/py2/tests/test_https.py
blob: 0fdc4a287270d48e13f35939fee20b21f5706918 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import sys

import pytest
import requests

from pytest_localserver import https, plugin


# define test fixture here again in order to run tests without having to
# install the plugin anew every single time
httpsserver = plugin.httpsserver


def test_httpsserver_funcarg(httpsserver):
    assert isinstance(httpsserver, https.SecureContentServer)
    assert httpsserver.is_alive()
    assert httpsserver.server_address


def test_server_does_not_serve_file_at_startup(httpsserver):
    assert httpsserver.code == 204
    assert httpsserver.content == ''


def test_some_content_retrieval(httpsserver):
    httpsserver.serve_content('TEST!')
    resp = requests.get(httpsserver.url, verify=False)
    assert resp.text == 'TEST!'
    assert resp.status_code == 200


def test_GET_request(httpsserver):
    httpsserver.serve_content('TEST!', headers={'Content-type': 'text/plain'})
    resp = requests.get(httpsserver.url, headers={'User-Agent': 'Test method'}, verify=False)
    assert resp.text == 'TEST!'
    assert resp.status_code == 200
    assert 'text/plain' in resp.headers['Content-type']


def test_HEAD_request(httpsserver):
    httpsserver.serve_content('TEST!', headers={'Content-type': 'text/plain'})
    print(httpsserver.url)
    resp = requests.head(httpsserver.url, verify=False)
    assert resp.status_code == 200
    assert resp.headers['Content-type'] == 'text/plain'