1
0
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:
Sebastian Pipping
2023-12-12 20:28:19 +01:00
committed by GitHub
13 changed files with 128 additions and 52 deletions

View File

@@ -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

View File

@@ -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 .

View 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
View 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
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 "$@"

View File

@@ -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}"
} }

View File

@@ -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']

View File

@@ -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}"
} }

View File

@@ -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']