diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 416a061..066bc62 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.8, 3.9, '3.10', 3.11, 3.12, pypy-3.8, pypy-3.9] + python-version: [3.8, 3.9, '3.10', 3.11, 3.12, 3.13, pypy-3.10] os: [macOS-latest, ubuntu-latest, windows-latest] steps: @@ -21,10 +21,11 @@ jobs: uses: actions/checkout@v2 - name: Set Up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip + allow-prereleases: true cache-dependency-path: | pyproject.toml setup.cfg diff --git a/pytest_httpbin/certs.py b/pytest_httpbin/certs.py index 75444d5..230f41b 100644 --- a/pytest_httpbin/certs.py +++ b/pytest_httpbin/certs.py @@ -15,7 +15,7 @@ def where(): """Return the preferred certificate bundle.""" # vendored bundle inside Requests - return os.path.join(os.path.dirname(__file__), "certs", "cacert.pem") + return os.path.join(os.path.dirname(__file__), "certs", "client.pem") if __name__ == "__main__": diff --git a/pytest_httpbin/certs/README.md b/pytest_httpbin/certs/README.md new file mode 100644 index 0000000..edba274 --- /dev/null +++ b/pytest_httpbin/certs/README.md @@ -0,0 +1 @@ +generated with 'python -m trustme' diff --git a/pytest_httpbin/certs/cacert.pem b/pytest_httpbin/certs/cacert.pem deleted file mode 100644 index f797f2e..0000000 --- a/pytest_httpbin/certs/cacert.pem +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFNjCCAx4CCQCxvkG1KFHCuzANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCSEkxEjAQBgNVBAcMCWtldmluMTAyNDEtMCsGA1UECgwkcHl0 -ZXN0LWh0dHBiaW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE5MDIxMTE1NDgz -MFoXDTM5MDIwNjE1NDgzMFowXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkhJMRIw -EAYDVQQHDAlrZXZpbjEwMjQxLTArBgNVBAoMJHB5dGVzdC1odHRwYmluIENlcnRp -ZmljYXRlIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -ANbSc+N9CYgRPVMIQTEXqDeFG1GvHjgjhwN/nV/JGqmG8ZgD26WMRs9b6yHdD8Xx -Wgq6IqOm+dzkfRCnELPtYn96l1SSfZBEAAo5137ZzaKLLvKp2cjUwLN3Y7ZlF8CV -rZT7ObII9J0Xt67XrdPXeKIVzZjg9CtPFFE+OzrLl8UNH2N5zGxJ43G0v1f+5qYu -/oIHRiN4Wdd53MJaFOXMzI43/vYztHpW4tsKhmR8cTgpdbM4yCWU5mYDz+SPsMvN -7OVcTW+ALifxIjr/J0l1uIFfq00UgPv1SaLGL1bfrQFVpPfRl6mNBRf1xszDXk4x -xsv67EpWdQ2UIHvP9LMe+IeVqf+V+9u2VuijYeZo6T8lCLPRznqO24pkTkioSfpT -tluxWaY2/hdlYBWVuK5pV49L6ls6ci03Q+LDzN29D+rfGraWDWWbkF/8qQZOKE85 -/rW6hpsEgOVgtVVTm2wCH7v1VpEnfj9LBQgvrDpawwP9OQyueGnrMC6Oqsx7L8MM -2w+4qZ7/XlrrPlxMorNyQsFpDI0tui3qiggvlHUFjn9CDfulAZlrqExuAmrXzpJo -sEfwmwqXijrtZqBm9nrTC2piUUcE7eqKPk/qsBDf+Y+WJxszyRrBron3FjI/IgLc -efa8ncsdyFybvIJ3RIeI01Ah3iTmxSjxW/5zZEamhsdPAgMBAAEwDQYJKoZIhvcN -AQELBQADggIBAEkLPQ/X29BWQus+uRqcpHnv3N82ymOfVTzlLzlddRXTJY2G6aMO -lSRoTDIDplyCPuS+mapqXh3TjeUeDNHriAmS+CCACpsYy11CdLsc7TwonApa4ttL -b9ubmZ+QpK+5aTXiglxqB/EMzT9SNOCxZb89+ONg6J/4AgW19OkKqwIsiBN7l7NO -pi5tLE9YqR4KaQRs/3meAj7xjjzWkXW7w6KbTAc5IbrzejThizmWsJjWM5N/BkZH -GN/MCQ2cWZ7U1YkwgBX2VUeR/xqgyBWBITj5SFoIMjN6+DFC/Cegu0OdmQ4lZAVh -dFVgfQd5FSdIvAo4tnDiOWJzIoF/RwybgqHRYBg4RBLgBTBqYfgtc0R5us6E/QNa -rGRHiq6JOeCoCvWvkWOa/DslmFD+12TWjSUIuYbse6lqiEwCpF16M6ZIJNpAJh80 -sAQyY9UnPsBsqkptwgeGoXk+1t3NTteetMKApgC+OuxZi7ijbCArVFwpHp2M22nJ -AShGgjxPNZV4AtR1HKAYW+C12IbuFMrS6uby8fj+dLJXqjq3kxuE1h8oQsME/wF9 -FT8aFVhZJ+VbNNFtcdrjNnN++mBm9mBC79ANbLG2N5FZZJynicwRqWKDu52u6t20 -buVa8cFuOSK2Prz/3RCYjPlszebE26KNCMHPG3U0ZIUJM2hmlBfRVwZW ------END CERTIFICATE----- diff --git a/pytest_httpbin/certs/cert.pem b/pytest_httpbin/certs/cert.pem deleted file mode 100644 index a51f061..0000000 --- a/pytest_httpbin/certs/cert.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEdjCCAl6gAwIBAgIJAJZYfkBVjU9hMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJISTESMBAGA1UEBwwJa2V2aW4xMDI0MS0wKwYDVQQK -DCRweXRlc3QtaHR0cGJpbiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTkwMjEx -MTY0OTM5WhcNMzkwMjA2MTY0OTM5WjB4MQswCQYDVQQGEwJISTESMBAGA1UECAwJ -a2V2aW4xMDI0MQ8wDQYDVQQHDAZLYWlsdWExFzAVBgNVBAoMDlB5dGVzdC1odHRw -YmluMRcwFQYDVQQLDA5QeXRlc3QtaHR0cGJpbjESMBAGA1UEAwwJMTI3LjAuMC4x -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvSQUs9vEg5m6GUeEK44o -2fZzTMMfiRCUqPTyh1LGen7A2CSPYMRst9mb9ygZjQGqoVKIAQC+RuEsMl8pjw/g -vKoJPcKwONxnOwILbLsuGZ+szgx/q9IZ3BQR5pXenJP8A9hCeUzREU6OjFqQEB4g -zjsBhUsf5cfn+YCKPhvWflSy6tgjjHK5ocNSoWvmeDbz1elgd7XR8tIYlgT8t8aA -n66IRtONUJRuik/3mOdQUdC2E0dOVD2ivcSKLbudGGbVscEl0JZNfZhgqUCcEMSQ -kHNxlXmWd67X6VzBKjq0GoYa5WPsZtT3kpdyiP0runb0z/ciDKLJ5CbeBaWeN3bW -qwIDAQABox4wHDAaBgNVHREEEzARgglsb2NhbGhvc3SHBH8AAAEwDQYJKoZIhvcN -AQELBQADggIBAFC2Ozs6U3Ia01Lzbm+aIwDRy5A4DSZ8q5OVQxmcE0vQ+yOHhQt4 -bh5z3+q09Gycnsb7Ydwg6nNgT4Jbyq4eyjS73R4VHerdBdFyujEv6tVwho1mtLSc -wwLbhp6YvbI7wsomc3FIIgOw2Oi6ZGQQneQikXm0yTe6+MZcPs9+4D2lwPFhxGnA -+6lAsj+zvaZknvVr9lfhbP4RvCMnyNZsf4Z2bv0i0cdA4uaHRQD9KB6DyLGTLjHZ -YDZS52UINsoPehERWf/I/z/n4K1WKzCY6By3pRSKOHNhdo7UHg659AHByf5kBLGX -ByvVMZ4XzpoUYcT+93EsoU0jU/i4zKbY2z27ny9Erb1JzwYIXtUoAO1tkqZrtGFs -LG+l8T4PazRDe0redwb3XkNRzS54J/ocrUBeNhFDQJjmLOMflsnLDRPxnZzEkGjm -+svpq0UChPSiEkaCdF1gL5euoPIuQ6KpSMbf+WLjuFhwnMZyvbh1xEd7MnLg7qU8 -karqmiEiyYzmhn7ygcTCn7Hgo98tIzydo0+9fk5pmyzE5PjI1uVJJ76JXK74aJPy -iUK9OOrW1ZE3LGP8ZCtZMAciV3GHRBXHUIslu7PUxj6LHXQz+7qDO6xmuEp4emki -+vNHdGEVtxW3WObO+i+V/hWIgXubXqxlSUUG7AfAt65278l2s5N+i4+p ------END CERTIFICATE----- diff --git a/pytest_httpbin/certs/client.pem b/pytest_httpbin/certs/client.pem new file mode 100644 index 0000000..7946137 --- /dev/null +++ b/pytest_httpbin/certs/client.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB0TCCAXegAwIBAgIUScnyyX1CI+ywC6GdKol8IIwuGnkwCgYIKoZIzj0EAwIw +RDEbMBkGA1UECgwSdHJ1c3RtZSB2MS4xLjArZGV2MSUwIwYDVQQLDBxUZXN0aW5n +IENBICNBdXNVcWJaNG81d3pjb0tCMCAXDTAwMDEwMTAwMDAwMFoYDzMwMDAwMTAx +MDAwMDAwWjBEMRswGQYDVQQKDBJ0cnVzdG1lIHYxLjEuMCtkZXYxJTAjBgNVBAsM +HFRlc3RpbmcgQ0EgI0F1c1VxYlo0bzV3emNvS0IwWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAARhrRi78wmZY28t3/y8MTDDCsi7Lzir4WaQm96gf4/9kSolBTFVDUvB +MkSC7Yged+2bWEzTRERZQLf88uiorUnAo0UwQzAdBgNVHQ4EFgQUHymIBJV4gCrA +qv+6Q9pSJFtd7PYwEgYDVR0TAQH/BAgwBgEB/wIBCTAOBgNVHQ8BAf8EBAMCAYYw +CgYIKoZIzj0EAwIDSAAwRQIgLf0sybmdbJoTIgZWrU1k11oecQbdkzh+3jFtNEFn +zYUCIQCRXjIBDZXtyaywk3DgIggByCQxrrB5vjlnyYTd9vNUSw== +-----END CERTIFICATE----- diff --git a/pytest_httpbin/certs/etc/README.md b/pytest_httpbin/certs/etc/README.md deleted file mode 100644 index 699b6c3..0000000 --- a/pytest_httpbin/certs/etc/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Here is how I generated these: - -https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309 diff --git a/pytest_httpbin/certs/etc/certificate.conf b/pytest_httpbin/certs/etc/certificate.conf deleted file mode 100644 index 254edb9..0000000 --- a/pytest_httpbin/certs/etc/certificate.conf +++ /dev/null @@ -1,18 +0,0 @@ -[req] -default_bits = 2048 -prompt = no -default_md = sha256 -req_extensions = req_ext -distinguished_name = dn -[dn] -C = HI -ST = kevin1024 -L = Kailua -O = Pytest-httpbin -OU = Pytest-httpbin -CN = 127.0.0.1 -[req_ext] -subjectAltName = @alt_names -[alt_names] -DNS.1 = localhost -IP.1 = 127.0.0.1 diff --git a/pytest_httpbin/certs/etc/localhost.crt b/pytest_httpbin/certs/etc/localhost.crt deleted file mode 100644 index a51f061..0000000 --- a/pytest_httpbin/certs/etc/localhost.crt +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEdjCCAl6gAwIBAgIJAJZYfkBVjU9hMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJISTESMBAGA1UEBwwJa2V2aW4xMDI0MS0wKwYDVQQK -DCRweXRlc3QtaHR0cGJpbiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTkwMjEx -MTY0OTM5WhcNMzkwMjA2MTY0OTM5WjB4MQswCQYDVQQGEwJISTESMBAGA1UECAwJ -a2V2aW4xMDI0MQ8wDQYDVQQHDAZLYWlsdWExFzAVBgNVBAoMDlB5dGVzdC1odHRw -YmluMRcwFQYDVQQLDA5QeXRlc3QtaHR0cGJpbjESMBAGA1UEAwwJMTI3LjAuMC4x -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvSQUs9vEg5m6GUeEK44o -2fZzTMMfiRCUqPTyh1LGen7A2CSPYMRst9mb9ygZjQGqoVKIAQC+RuEsMl8pjw/g -vKoJPcKwONxnOwILbLsuGZ+szgx/q9IZ3BQR5pXenJP8A9hCeUzREU6OjFqQEB4g -zjsBhUsf5cfn+YCKPhvWflSy6tgjjHK5ocNSoWvmeDbz1elgd7XR8tIYlgT8t8aA -n66IRtONUJRuik/3mOdQUdC2E0dOVD2ivcSKLbudGGbVscEl0JZNfZhgqUCcEMSQ -kHNxlXmWd67X6VzBKjq0GoYa5WPsZtT3kpdyiP0runb0z/ciDKLJ5CbeBaWeN3bW -qwIDAQABox4wHDAaBgNVHREEEzARgglsb2NhbGhvc3SHBH8AAAEwDQYJKoZIhvcN -AQELBQADggIBAFC2Ozs6U3Ia01Lzbm+aIwDRy5A4DSZ8q5OVQxmcE0vQ+yOHhQt4 -bh5z3+q09Gycnsb7Ydwg6nNgT4Jbyq4eyjS73R4VHerdBdFyujEv6tVwho1mtLSc -wwLbhp6YvbI7wsomc3FIIgOw2Oi6ZGQQneQikXm0yTe6+MZcPs9+4D2lwPFhxGnA -+6lAsj+zvaZknvVr9lfhbP4RvCMnyNZsf4Z2bv0i0cdA4uaHRQD9KB6DyLGTLjHZ -YDZS52UINsoPehERWf/I/z/n4K1WKzCY6By3pRSKOHNhdo7UHg659AHByf5kBLGX -ByvVMZ4XzpoUYcT+93EsoU0jU/i4zKbY2z27ny9Erb1JzwYIXtUoAO1tkqZrtGFs -LG+l8T4PazRDe0redwb3XkNRzS54J/ocrUBeNhFDQJjmLOMflsnLDRPxnZzEkGjm -+svpq0UChPSiEkaCdF1gL5euoPIuQ6KpSMbf+WLjuFhwnMZyvbh1xEd7MnLg7qU8 -karqmiEiyYzmhn7ygcTCn7Hgo98tIzydo0+9fk5pmyzE5PjI1uVJJ76JXK74aJPy -iUK9OOrW1ZE3LGP8ZCtZMAciV3GHRBXHUIslu7PUxj6LHXQz+7qDO6xmuEp4emki -+vNHdGEVtxW3WObO+i+V/hWIgXubXqxlSUUG7AfAt65278l2s5N+i4+p ------END CERTIFICATE----- diff --git a/pytest_httpbin/certs/etc/localhost.csr b/pytest_httpbin/certs/etc/localhost.csr deleted file mode 100644 index fdf5edd..0000000 --- a/pytest_httpbin/certs/etc/localhost.csr +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIC6jCCAdICAQAweDELMAkGA1UEBhMCSEkxEjAQBgNVBAgMCWtldmluMTAyNDEP -MA0GA1UEBwwGS2FpbHVhMRcwFQYDVQQKDA5QeXRlc3QtaHR0cGJpbjEXMBUGA1UE -CwwOUHl0ZXN0LWh0dHBiaW4xEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL0kFLPbxIOZuhlHhCuOKNn2c0zDH4kQlKj0 -8odSxnp+wNgkj2DEbLfZm/coGY0BqqFSiAEAvkbhLDJfKY8P4LyqCT3CsDjcZzsC -C2y7LhmfrM4Mf6vSGdwUEeaV3pyT/APYQnlM0RFOjoxakBAeIM47AYVLH+XH5/mA -ij4b1n5UsurYI4xyuaHDUqFr5ng289XpYHe10fLSGJYE/LfGgJ+uiEbTjVCUbopP -95jnUFHQthNHTlQ9or3Eii27nRhm1bHBJdCWTX2YYKlAnBDEkJBzcZV5lneu1+lc -wSo6tBqGGuVj7GbU95KXcoj9K7p29M/3IgyiyeQm3gWlnjd21qsCAwEAAaAtMCsG -CSqGSIb3DQEJDjEeMBwwGgYDVR0RBBMwEYIJbG9jYWxob3N0hwR/AAABMA0GCSqG -SIb3DQEBCwUAA4IBAQCJNlvkm7kp2O4H7rhE5yohTN5x5vQVTS3dHnA+laWouigE -/6Uy6MKZVoOOgeaG9f+9Ej/x/jVKT7zdYPOLn3K9YLO44sG3pY4CNfrW6Y9y5tpz -VXZ4N0WsKj108+1ievC/Ny8tCY5UQjfQZn3X+wVkk3aZWM5U3YJvGj9cGe/Jnijp -a7vcvq5X5otgbQiy/qbU/Cx+FJy0lfeBiEaVIIEyOACAMlXLeIKeHHUOt+B/8OAv -hLn4qbCxHrjJm8rj2+kqaSj1kQBwds3nKWVAExpv4m9YDyjVsiJcM1OMEZrjmjPn -WvY2dLTCaNesreKeFyRIg6oGZrGFWQ4ORBGlrmdl ------END CERTIFICATE REQUEST----- diff --git a/pytest_httpbin/certs/etc/localhost.key b/pytest_httpbin/certs/etc/localhost.key deleted file mode 100644 index 5308e15..0000000 --- a/pytest_httpbin/certs/etc/localhost.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAvSQUs9vEg5m6GUeEK44o2fZzTMMfiRCUqPTyh1LGen7A2CSP -YMRst9mb9ygZjQGqoVKIAQC+RuEsMl8pjw/gvKoJPcKwONxnOwILbLsuGZ+szgx/ -q9IZ3BQR5pXenJP8A9hCeUzREU6OjFqQEB4gzjsBhUsf5cfn+YCKPhvWflSy6tgj -jHK5ocNSoWvmeDbz1elgd7XR8tIYlgT8t8aAn66IRtONUJRuik/3mOdQUdC2E0dO -VD2ivcSKLbudGGbVscEl0JZNfZhgqUCcEMSQkHNxlXmWd67X6VzBKjq0GoYa5WPs -ZtT3kpdyiP0runb0z/ciDKLJ5CbeBaWeN3bWqwIDAQABAoIBAHmM53USxf6g23UF -fc4T5PL2K/Dn8KtAKZlPGVGYA4+TR9Ff5XiVoxyfz1iNv6XbrVFRXa/vT1jzuliA -yY9z78SvLZMwO9m+4uSMEtWEkULMV9xvMdk1A4NornxWUiKkA7Bg2Y9kq3MI3hka -1jxVcFW4m+iSd+ROjSjNz4nMkBLMtV8CZ9zVNkF7ZnGtVYQhyi4l+o5NXbo/2zpN -rkIMm4QWWgyVMWzZnTa61jwtHKOapgg94FZw2LGIzZspZpZdk4Jerxzg5mfv6FUh -/ngPGmQ4p2cMl9M8UMpUdTlO9sPkt63wmSbNrd1zeeOx2SMmDgeowOKWH1CRnsPO -QXj1lbkCgYEA9O8sB7fsARx8oxDQBYj/Jtiz+805/QLpwBMWopmutLJm2Dy3jIm8 -DZzErr4XGGreGv5sUX6JAYCAXMK14mzzURb65QX6fQpVNgrE+RZSRpc53/YWkaok -OtUUonigN04x6kC3OVuqCVz8g7Qzvm2OUakBFz9TIypFvk9CNn2nZtUCgYEAxa+f -NIsKAWz4l5j/kVkt4QklOHyz0BOrNpycyjceP5GI7m14UHBR/8INseG3WNkpC5j/ -k1Tq1dnPYDb0oFiUIPzQ+nZHNWZU99vgwG1odSVRDsVI+Vca1VknSy6rZykGs0Yy -o+/EiZHx21GczRH6eFBkY/mJbqfVUuhNn/qvB38CgYEA1caqN1JfudiTL//MkAgy -KkWZUXyd0CZqvinq56Aay7up57GWwiK072yUfa+LmNQtZoIJKFe4XIc7gbqv5SAS -fgQAl0PQjLIoDTL5GC5TQSlcagzvRdOqK28uw19k9uBY0IwLXxSSI/n0qz7sqpgU -T1GikhfDCD4tAR1MPSMOqMECgYBGTBp4K81GDoMkHZMcE7Nd58ull6q1npju1ahn -vEv0XQNtjd4P9LEkGtSV4ec6IBcZebHAqZzMqSS2WTSKZJVgWabSuga+dYJXlYgJ -xZ40si1t7Dfz+safAZIYiSMIjy1DyP2vEE86gHyZ+h6hSfhgmm3oo07824/faJ5Z -+mINbwKBgGhwUhu5PYylZjIJqlsIaQMdIZaFmNJO2GnedBxjckLmk4iNDUwLo6Eb -+1buSly8Zz9RybvuhYy+ppEU6kRDeN7uIEps3O44knOhRNQMCUH7j9Edkh0vtkwB -6on/+SVmdY7lDWpz7PICX9rN0ziCETFhohrll+SneBVNlHnqdrwL ------END RSA PRIVATE KEY----- diff --git a/pytest_httpbin/certs/etc/rootCA.crt b/pytest_httpbin/certs/etc/rootCA.crt deleted file mode 100644 index f797f2e..0000000 --- a/pytest_httpbin/certs/etc/rootCA.crt +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFNjCCAx4CCQCxvkG1KFHCuzANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCSEkxEjAQBgNVBAcMCWtldmluMTAyNDEtMCsGA1UECgwkcHl0 -ZXN0LWh0dHBiaW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE5MDIxMTE1NDgz -MFoXDTM5MDIwNjE1NDgzMFowXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkhJMRIw -EAYDVQQHDAlrZXZpbjEwMjQxLTArBgNVBAoMJHB5dGVzdC1odHRwYmluIENlcnRp -ZmljYXRlIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -ANbSc+N9CYgRPVMIQTEXqDeFG1GvHjgjhwN/nV/JGqmG8ZgD26WMRs9b6yHdD8Xx -Wgq6IqOm+dzkfRCnELPtYn96l1SSfZBEAAo5137ZzaKLLvKp2cjUwLN3Y7ZlF8CV -rZT7ObII9J0Xt67XrdPXeKIVzZjg9CtPFFE+OzrLl8UNH2N5zGxJ43G0v1f+5qYu -/oIHRiN4Wdd53MJaFOXMzI43/vYztHpW4tsKhmR8cTgpdbM4yCWU5mYDz+SPsMvN -7OVcTW+ALifxIjr/J0l1uIFfq00UgPv1SaLGL1bfrQFVpPfRl6mNBRf1xszDXk4x -xsv67EpWdQ2UIHvP9LMe+IeVqf+V+9u2VuijYeZo6T8lCLPRznqO24pkTkioSfpT -tluxWaY2/hdlYBWVuK5pV49L6ls6ci03Q+LDzN29D+rfGraWDWWbkF/8qQZOKE85 -/rW6hpsEgOVgtVVTm2wCH7v1VpEnfj9LBQgvrDpawwP9OQyueGnrMC6Oqsx7L8MM -2w+4qZ7/XlrrPlxMorNyQsFpDI0tui3qiggvlHUFjn9CDfulAZlrqExuAmrXzpJo -sEfwmwqXijrtZqBm9nrTC2piUUcE7eqKPk/qsBDf+Y+WJxszyRrBron3FjI/IgLc -efa8ncsdyFybvIJ3RIeI01Ah3iTmxSjxW/5zZEamhsdPAgMBAAEwDQYJKoZIhvcN -AQELBQADggIBAEkLPQ/X29BWQus+uRqcpHnv3N82ymOfVTzlLzlddRXTJY2G6aMO -lSRoTDIDplyCPuS+mapqXh3TjeUeDNHriAmS+CCACpsYy11CdLsc7TwonApa4ttL -b9ubmZ+QpK+5aTXiglxqB/EMzT9SNOCxZb89+ONg6J/4AgW19OkKqwIsiBN7l7NO -pi5tLE9YqR4KaQRs/3meAj7xjjzWkXW7w6KbTAc5IbrzejThizmWsJjWM5N/BkZH -GN/MCQ2cWZ7U1YkwgBX2VUeR/xqgyBWBITj5SFoIMjN6+DFC/Cegu0OdmQ4lZAVh -dFVgfQd5FSdIvAo4tnDiOWJzIoF/RwybgqHRYBg4RBLgBTBqYfgtc0R5us6E/QNa -rGRHiq6JOeCoCvWvkWOa/DslmFD+12TWjSUIuYbse6lqiEwCpF16M6ZIJNpAJh80 -sAQyY9UnPsBsqkptwgeGoXk+1t3NTteetMKApgC+OuxZi7ijbCArVFwpHp2M22nJ -AShGgjxPNZV4AtR1HKAYW+C12IbuFMrS6uby8fj+dLJXqjq3kxuE1h8oQsME/wF9 -FT8aFVhZJ+VbNNFtcdrjNnN++mBm9mBC79ANbLG2N5FZZJynicwRqWKDu52u6t20 -buVa8cFuOSK2Prz/3RCYjPlszebE26KNCMHPG3U0ZIUJM2hmlBfRVwZW ------END CERTIFICATE----- diff --git a/pytest_httpbin/certs/etc/rootCA.key b/pytest_httpbin/certs/etc/rootCA.key deleted file mode 100644 index d2e5914..0000000 --- a/pytest_httpbin/certs/etc/rootCA.key +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/pytest_httpbin/certs/etc/rootCA.srl b/pytest_httpbin/certs/etc/rootCA.srl deleted file mode 100644 index ca60cc8..0000000 --- a/pytest_httpbin/certs/etc/rootCA.srl +++ /dev/null @@ -1 +0,0 @@ -96587E40558D4F61 diff --git a/pytest_httpbin/certs/key.pem b/pytest_httpbin/certs/key.pem deleted file mode 100644 index 5308e15..0000000 --- a/pytest_httpbin/certs/key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAvSQUs9vEg5m6GUeEK44o2fZzTMMfiRCUqPTyh1LGen7A2CSP -YMRst9mb9ygZjQGqoVKIAQC+RuEsMl8pjw/gvKoJPcKwONxnOwILbLsuGZ+szgx/ -q9IZ3BQR5pXenJP8A9hCeUzREU6OjFqQEB4gzjsBhUsf5cfn+YCKPhvWflSy6tgj -jHK5ocNSoWvmeDbz1elgd7XR8tIYlgT8t8aAn66IRtONUJRuik/3mOdQUdC2E0dO -VD2ivcSKLbudGGbVscEl0JZNfZhgqUCcEMSQkHNxlXmWd67X6VzBKjq0GoYa5WPs -ZtT3kpdyiP0runb0z/ciDKLJ5CbeBaWeN3bWqwIDAQABAoIBAHmM53USxf6g23UF -fc4T5PL2K/Dn8KtAKZlPGVGYA4+TR9Ff5XiVoxyfz1iNv6XbrVFRXa/vT1jzuliA -yY9z78SvLZMwO9m+4uSMEtWEkULMV9xvMdk1A4NornxWUiKkA7Bg2Y9kq3MI3hka -1jxVcFW4m+iSd+ROjSjNz4nMkBLMtV8CZ9zVNkF7ZnGtVYQhyi4l+o5NXbo/2zpN -rkIMm4QWWgyVMWzZnTa61jwtHKOapgg94FZw2LGIzZspZpZdk4Jerxzg5mfv6FUh -/ngPGmQ4p2cMl9M8UMpUdTlO9sPkt63wmSbNrd1zeeOx2SMmDgeowOKWH1CRnsPO -QXj1lbkCgYEA9O8sB7fsARx8oxDQBYj/Jtiz+805/QLpwBMWopmutLJm2Dy3jIm8 -DZzErr4XGGreGv5sUX6JAYCAXMK14mzzURb65QX6fQpVNgrE+RZSRpc53/YWkaok -OtUUonigN04x6kC3OVuqCVz8g7Qzvm2OUakBFz9TIypFvk9CNn2nZtUCgYEAxa+f -NIsKAWz4l5j/kVkt4QklOHyz0BOrNpycyjceP5GI7m14UHBR/8INseG3WNkpC5j/ -k1Tq1dnPYDb0oFiUIPzQ+nZHNWZU99vgwG1odSVRDsVI+Vca1VknSy6rZykGs0Yy -o+/EiZHx21GczRH6eFBkY/mJbqfVUuhNn/qvB38CgYEA1caqN1JfudiTL//MkAgy -KkWZUXyd0CZqvinq56Aay7up57GWwiK072yUfa+LmNQtZoIJKFe4XIc7gbqv5SAS -fgQAl0PQjLIoDTL5GC5TQSlcagzvRdOqK28uw19k9uBY0IwLXxSSI/n0qz7sqpgU -T1GikhfDCD4tAR1MPSMOqMECgYBGTBp4K81GDoMkHZMcE7Nd58ull6q1npju1ahn -vEv0XQNtjd4P9LEkGtSV4ec6IBcZebHAqZzMqSS2WTSKZJVgWabSuga+dYJXlYgJ -xZ40si1t7Dfz+safAZIYiSMIjy1DyP2vEE86gHyZ+h6hSfhgmm3oo07824/faJ5Z -+mINbwKBgGhwUhu5PYylZjIJqlsIaQMdIZaFmNJO2GnedBxjckLmk4iNDUwLo6Eb -+1buSly8Zz9RybvuhYy+ppEU6kRDeN7uIEps3O44knOhRNQMCUH7j9Edkh0vtkwB -6on/+SVmdY7lDWpz7PICX9rN0ziCETFhohrll+SneBVNlHnqdrwL ------END RSA PRIVATE KEY----- diff --git a/pytest_httpbin/certs/server.key b/pytest_httpbin/certs/server.key new file mode 100644 index 0000000..fd9fd82 --- /dev/null +++ b/pytest_httpbin/certs/server.key @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPNMu1H1DN9x0VLZNzO3BFp5boEGyc80XFaR1ML18uFRoAoGCCqGSM49 +AwEHoUQDQgAEiNIfYxmsmjemcRRpcd4qP+x1yONFBZZli7CEKxg9j3x5j1OJPeyC +BQ83kogrxJYLbRjdHUx4VOCEXjffmYhnMA== +-----END EC PRIVATE KEY----- diff --git a/pytest_httpbin/certs/server.pem b/pytest_httpbin/certs/server.pem new file mode 100644 index 0000000..7c70f64 --- /dev/null +++ b/pytest_httpbin/certs/server.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICTDCCAfOgAwIBAgIUZ9rBQX/YRZFcqXCIzOSAd1D0IUcwCgYIKoZIzj0EAwIw +RDEbMBkGA1UECgwSdHJ1c3RtZSB2MS4xLjArZGV2MSUwIwYDVQQLDBxUZXN0aW5n +IENBICNBdXNVcWJaNG81d3pjb0tCMCAXDTAwMDEwMTAwMDAwMFoYDzMwMDAwMTAx +MDAwMDAwWjBGMRswGQYDVQQKDBJ0cnVzdG1lIHYxLjEuMCtkZXYxJzAlBgNVBAsM +HlRlc3RpbmcgY2VydCAjLVdQNWpjLTllQ0U0S0JxMjBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABIjSH2MZrJo3pnEUaXHeKj/sdcjjRQWWZYuwhCsYPY98eY9TiT3s +ggUPN5KIK8SWC20Y3R1MeFTghF4335mIZzCjgb4wgbswHQYDVR0OBBYEFCO99Ega +h7pEyFEJVwe09DZzNHDtMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUHymIBJV4 +gCrAqv+6Q9pSJFtd7PYwLwYDVR0RAQH/BCUwI4IJbG9jYWxob3N0hwR/AAABhxAA +AAAAAAAAAAAAAAAAAAABMA4GA1UdDwEB/wQEAwIFoDAqBgNVHSUBAf8EIDAeBggr +BgEFBQcDAgYIKwYBBQUHAwEGCCsGAQUFBwMDMAoGCCqGSM49BAMCA0cAMEQCIHB0 +imdD2aQuq4DipTvnFJjmT+w8i3D/Pz8X6bPdkJW/AiATl+m4TW4BE5v1ID3ftDhz +ja8s574nAjDAqcSL7otVpQ== +-----END CERTIFICATE----- diff --git a/pytest_httpbin/serve.py b/pytest_httpbin/serve.py index c15c227..5d4402a 100644 --- a/pytest_httpbin/serve.py +++ b/pytest_httpbin/serve.py @@ -52,27 +52,29 @@ def get_environ(self): class SecureWSGIServer(WSGIServer): - def finish_request(self, request, client_address): - """ - Negotiates SSL and then mimics BaseServer behavior. - """ - request.settimeout(1.0) + def get_request(self): + socket, address = super().get_request() try: + socket.settimeout(1.0) context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) context.load_cert_chain( - os.path.join(CERT_DIR, "cert.pem"), - os.path.join(CERT_DIR, "key.pem"), + os.path.join(CERT_DIR, "server.pem"), + os.path.join(CERT_DIR, "server.key"), + ) + return ( + context.wrap_socket( + socket, server_side=True, suppress_ragged_eofs=True + ), + address, ) - with context.wrap_socket( - request, server_side=True, suppress_ragged_eofs=False - ) as ssock: - self.base_environ["HTTPS"] = "yes" - self.RequestHandlerClass(ssock, client_address, self) except Exception as e: print("pytest-httpbin server hit an exception serving request: %s" % e) print("attempting to ignore so the rest of the tests can run") - # WSGIRequestHandler seems to close the socket for us. - # Thanks, WSGIRequestHandler!! + raise + + def setup_environ(self): + super().setup_environ() + self.base_environ["HTTPS"] = "yes" class Server: diff --git a/tests/test_httpbin.py b/tests/test_httpbin.py index a75c692..9f2e4aa 100644 --- a/tests/test_httpbin.py +++ b/tests/test_httpbin.py @@ -1,11 +1,13 @@ import ssl import sys import unittest +import urllib.request import pytest import requests.exceptions +import urllib3 -import pytest_httpbin +import pytest_httpbin.certs def test_httpbin_gets_injected(httpbin): @@ -67,3 +69,20 @@ def test_http(self): def test_http_secure(self): assert requests.get(self.httpbin_secure.url + "/get").status_code == 200 + + +def test_with_urllib2(httpbin_secure): + url = httpbin_secure.url + "/get" + context = ssl.create_default_context(cafile=pytest_httpbin.certs.where()) + with urllib.request.urlopen(url, context=context) as response: + assert response.getcode() == 200 + + +def test_with_urllib3(httpbin_secure): + with urllib3.PoolManager( + cert_reqs="CERT_REQUIRED", + ca_certs=pytest_httpbin.certs.where(), + ) as pool: + pool.request( + "POST", httpbin_secure.url + "/post", {"key1": "value1", "key2": "value2"} + )