mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
Merge pull request #800 from kevin1024/pre-commit-ci
Start using pre-commit in CI
This commit is contained in:
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.12"
|
python-version: "3.12"
|
||||||
|
|
||||||
- name: Install build dependencies
|
- name: Install build dependencies
|
||||||
run: pip install -r docs/requirements.txt
|
run: pip install -r docs/requirements.txt
|
||||||
- name: Rendering HTML documentation
|
- name: Rendering HTML documentation
|
||||||
|
|||||||
22
.github/workflows/lint.yml
vendored
22
.github/workflows/lint.yml
vendored
@@ -1,22 +0,0 @@
|
|||||||
name: Lint
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install ruff
|
|
||||||
- name: Lint
|
|
||||||
run: |
|
|
||||||
ruff --version
|
|
||||||
ruff format --check --diff .
|
|
||||||
ruff check --diff .
|
|
||||||
62
.github/workflows/pre-commit-detect-outdated.yml
vendored
Normal file
62
.github/workflows/pre-commit-detect-outdated.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>
|
||||||
|
# Licensed under the MIT license
|
||||||
|
|
||||||
|
name: Detect outdated pre-commit hooks
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 16 * * 5' # Every Friday 4pm
|
||||||
|
|
||||||
|
# NOTE: This will drop all permissions from GITHUB_TOKEN except metadata read,
|
||||||
|
# and then (re)add the ones listed below:
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pre_commit_detect_outdated:
|
||||||
|
name: Detect outdated pre-commit hooks
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Python 3.12
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: 3.12
|
||||||
|
|
||||||
|
- name: Install pre-commit
|
||||||
|
run: |-
|
||||||
|
pip install \
|
||||||
|
--disable-pip-version-check \
|
||||||
|
--no-warn-script-location \
|
||||||
|
--user \
|
||||||
|
pre-commit
|
||||||
|
echo "PATH=${HOME}/.local/bin:${PATH}" >> "${GITHUB_ENV}"
|
||||||
|
|
||||||
|
- name: Check for outdated hooks
|
||||||
|
run: |-
|
||||||
|
pre-commit autoupdate
|
||||||
|
git diff -- .pre-commit-config.yaml
|
||||||
|
|
||||||
|
- name: Create pull request from changes (if any)
|
||||||
|
id: create-pull-request
|
||||||
|
uses: peter-evans/create-pull-request@v5
|
||||||
|
with:
|
||||||
|
author: 'pre-commit <pre-commit@tools.invalid>'
|
||||||
|
base: master
|
||||||
|
body: |-
|
||||||
|
For your consideration.
|
||||||
|
|
||||||
|
:warning: Please **CLOSE AND RE-OPEN** this pull request so that [further workflow runs get triggered](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs) for this pull request.
|
||||||
|
branch: precommit-autoupdate
|
||||||
|
commit-message: "pre-commit: Autoupdate"
|
||||||
|
delete-branch: true
|
||||||
|
draft: true
|
||||||
|
labels: enhancement
|
||||||
|
title: "pre-commit: Autoupdate"
|
||||||
|
|
||||||
|
- name: Log pull request URL
|
||||||
|
if: "${{ steps.create-pull-request.outputs.pull-request-url }}"
|
||||||
|
run: |
|
||||||
|
echo "Pull request URL is: ${{ steps.create-pull-request.outputs.pull-request-url }}"
|
||||||
20
.github/workflows/pre-commit.yml
vendored
Normal file
20
.github/workflows/pre-commit.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>
|
||||||
|
# Licensed under the MIT license
|
||||||
|
|
||||||
|
name: Run pre-commit
|
||||||
|
|
||||||
|
on:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
- workflow_dispatch
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pre-commit:
|
||||||
|
name: Run pre-commit
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: 3.12
|
||||||
|
- uses: pre-commit/action@v3.0.0
|
||||||
17
.pre-commit-config.yaml
Normal file
17
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>
|
||||||
|
# Licensed under the MIT license
|
||||||
|
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
|
rev: v0.1.7
|
||||||
|
hooks:
|
||||||
|
- id: ruff
|
||||||
|
args: ["--show-source"]
|
||||||
|
- id: ruff-format
|
||||||
|
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.4.0
|
||||||
|
hooks:
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: trailing-whitespace
|
||||||
2
docs/_static/vcr.svg
vendored
2
docs/_static/vcr.svg
vendored
@@ -24,4 +24,4 @@
|
|||||||
<stop offset="1" stop-color="#27DDA6"/>
|
<stop offset="1" stop-color="#27DDA6"/>
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -16,7 +16,7 @@ a nice addition. Here's an example:
|
|||||||
with vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml') as cass:
|
with vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml') as cass:
|
||||||
response = urllib2.urlopen('http://www.zombo.com/').read()
|
response = urllib2.urlopen('http://www.zombo.com/').read()
|
||||||
# cass should have 1 request inside it
|
# cass should have 1 request inside it
|
||||||
assert len(cass) == 1
|
assert len(cass) == 1
|
||||||
# the request uri should have been http://www.zombo.com/
|
# the request uri should have been http://www.zombo.com/
|
||||||
assert cass.requests[0].uri == 'http://www.zombo.com/'
|
assert cass.requests[0].uri == 'http://www.zombo.com/'
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ So these two calls are the same:
|
|||||||
|
|
||||||
# original (still works)
|
# original (still works)
|
||||||
vcr = VCR(filter_headers=['authorization'])
|
vcr = VCR(filter_headers=['authorization'])
|
||||||
|
|
||||||
# new
|
# new
|
||||||
vcr = VCR(filter_headers=[('authorization', None)])
|
vcr = VCR(filter_headers=[('authorization', None)])
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ Here are two examples of the new functionality:
|
|||||||
|
|
||||||
# replace with a static value (most common)
|
# replace with a static value (most common)
|
||||||
vcr = VCR(filter_headers=[('authorization', 'XXXXXX')])
|
vcr = VCR(filter_headers=[('authorization', 'XXXXXX')])
|
||||||
|
|
||||||
# replace with a callable, for example when testing
|
# replace with a callable, for example when testing
|
||||||
# lots of different kinds of authorization.
|
# lots of different kinds of authorization.
|
||||||
def replace_auth(key, value, request):
|
def replace_auth(key, value, request):
|
||||||
@@ -286,7 +286,7 @@ sensitive data from the response body:
|
|||||||
before_record_response=scrub_string(settings.USERNAME, 'username'),
|
before_record_response=scrub_string(settings.USERNAME, 'username'),
|
||||||
)
|
)
|
||||||
with my_vcr.use_cassette('test.yml'):
|
with my_vcr.use_cassette('test.yml'):
|
||||||
# your http code here
|
# your http code here
|
||||||
|
|
||||||
|
|
||||||
Decode compressed response
|
Decode compressed response
|
||||||
|
|||||||
@@ -287,4 +287,3 @@ All help in providing PRs to close out bug issues is appreciated. Even if that i
|
|||||||
- Add support for requests / urllib3
|
- Add support for requests / urllib3
|
||||||
- 0.0.1
|
- 0.0.1
|
||||||
- Initial Release
|
- Initial Release
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# https://blog.ionelmc.ro/2015/04/14/tox-tricks-and-patterns/#when-it-inevitably-leads-to-shell-scripts
|
# https://blog.ionelmc.ro/2015/04/14/tox-tricks-and-patterns/#when-it-inevitably-leads-to-shell-scripts
|
||||||
# If you are getting an INVOCATION ERROR for this script then there is
|
# If you are getting an INVOCATION ERROR for this script then there is
|
||||||
# a good chance you are running on Windows.
|
# a good chance you are running on Windows.
|
||||||
# You can and should use WSL for running tox on Windows when it calls bash scripts.
|
# You can and should use WSL for running tox on Windows when it calls bash scripts.
|
||||||
REQUESTS_CA_BUNDLE=`python3 -m pytest_httpbin.certs` exec pytest "$@"
|
REQUESTS_CA_BUNDLE=`python3 -m pytest_httpbin.certs` exec pytest "$@"
|
||||||
|
|||||||
6
tests/fixtures/migration/new_cassette.json
vendored
6
tests/fixtures/migration/new_cassette.json
vendored
@@ -15,9 +15,9 @@
|
|||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"status": {
|
"status": {
|
||||||
"message": "OK",
|
"message": "OK",
|
||||||
"code": 200
|
"code": 200
|
||||||
},
|
},
|
||||||
"headers": {
|
"headers": {
|
||||||
"access-control-allow-origin": ["*"],
|
"access-control-allow-origin": ["*"],
|
||||||
"content-type": ["application/json"],
|
"content-type": ["application/json"],
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"server": ["gunicorn/0.17.4"],
|
"server": ["gunicorn/0.17.4"],
|
||||||
"content-length": ["32"],
|
"content-length": ["32"],
|
||||||
"connection": ["keep-alive"]
|
"connection": ["keep-alive"]
|
||||||
},
|
},
|
||||||
"body": {
|
"body": {
|
||||||
"string": "{\n \"origin\": \"217.122.164.194\"\n}"
|
"string": "{\n \"origin\": \"217.122.164.194\"\n}"
|
||||||
}
|
}
|
||||||
|
|||||||
2
tests/fixtures/migration/new_cassette.yaml
vendored
2
tests/fixtures/migration/new_cassette.yaml
vendored
@@ -2,7 +2,7 @@ version: 1
|
|||||||
interactions:
|
interactions:
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
accept: ['*/*']
|
accept: ['*/*']
|
||||||
accept-encoding: ['gzip, deflate, compress']
|
accept-encoding: ['gzip, deflate, compress']
|
||||||
user-agent: ['python-requests/2.2.1 CPython/2.6.1 Darwin/10.8.0']
|
user-agent: ['python-requests/2.2.1 CPython/2.6.1 Darwin/10.8.0']
|
||||||
|
|||||||
34
tests/fixtures/migration/old_cassette.json
vendored
34
tests/fixtures/migration/old_cassette.json
vendored
@@ -1,31 +1,31 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"request": {
|
"request": {
|
||||||
"body": null,
|
"body": null,
|
||||||
"protocol": "http",
|
"protocol": "http",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"headers": {
|
"headers": {
|
||||||
"accept-encoding": "gzip, deflate, compress",
|
"accept-encoding": "gzip, deflate, compress",
|
||||||
"accept": "*/*",
|
"accept": "*/*",
|
||||||
"user-agent": "python-requests/2.2.1 CPython/2.6.1 Darwin/10.8.0"
|
"user-agent": "python-requests/2.2.1 CPython/2.6.1 Darwin/10.8.0"
|
||||||
},
|
},
|
||||||
"host": "httpbin.org",
|
"host": "httpbin.org",
|
||||||
"path": "/ip",
|
"path": "/ip",
|
||||||
"port": 80
|
"port": 80
|
||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"status": {
|
"status": {
|
||||||
"message": "OK",
|
"message": "OK",
|
||||||
"code": 200
|
"code": 200
|
||||||
},
|
},
|
||||||
"headers": [
|
"headers": [
|
||||||
"access-control-allow-origin: *\r\n",
|
"access-control-allow-origin: *\r\n",
|
||||||
"content-type: application/json\r\n",
|
"content-type: application/json\r\n",
|
||||||
"date: Mon, 21 Apr 2014 23:13:40 GMT\r\n",
|
"date: Mon, 21 Apr 2014 23:13:40 GMT\r\n",
|
||||||
"server: gunicorn/0.17.4\r\n",
|
"server: gunicorn/0.17.4\r\n",
|
||||||
"content-length: 32\r\n",
|
"content-length: 32\r\n",
|
||||||
"connection: keep-alive\r\n"
|
"connection: keep-alive\r\n"
|
||||||
],
|
],
|
||||||
"body": {
|
"body": {
|
||||||
"string": "{\n \"origin\": \"217.122.164.194\"\n}"
|
"string": "{\n \"origin\": \"217.122.164.194\"\n}"
|
||||||
}
|
}
|
||||||
|
|||||||
2
tests/fixtures/wild/domain_redirect.yaml
vendored
2
tests/fixtures/wild/domain_redirect.yaml
vendored
@@ -10,7 +10,7 @@ interactions:
|
|||||||
uri: http://seomoz.org/
|
uri: http://seomoz.org/
|
||||||
response:
|
response:
|
||||||
body: {string: ''}
|
body: {string: ''}
|
||||||
headers:
|
headers:
|
||||||
Location: ['http://moz.com/']
|
Location: ['http://moz.com/']
|
||||||
Server: ['BigIP']
|
Server: ['BigIP']
|
||||||
Connection: ['Keep-Alive']
|
Connection: ['Keep-Alive']
|
||||||
|
|||||||
Reference in New Issue
Block a user