Skip to content

Run commit-range from current repo #29

Run commit-range from current repo

Run commit-range from current repo #29

name: Test working-directory input
on: push
jobs:
test-working-directory:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up test environment
run: |
pip install pip-requirements-parser
mkdir -p $RUNNER_TEMP/test-repo
pushd $RUNNER_TEMP/test-repo
git init
git config user.email "[email protected]"
git config user.name "Test User"
git commit --allow-empty -m "Initial empty commit"
echo 'def hello(): return "Hello, World!"' > test.py
git add test.py
git commit -m "Add test.py file"
echo 'def hello(): return "Hello, World!"' > test.py
popd
- name: Run Darker without working-directory (should not reformat)
uses: ./
continue-on-error: true
id: no-work-dir
with:
version: "@gh-action-working-directory"
options: --check --diff
src: test.py
revision: HEAD
- name: Check that test.py was not found
if: always() && steps.no-work-dir.outputs.exitcode != '2'
run: |
echo "::error::Darker should have failed with exit code 2"
echo "::error::It exited with ${{ steps.no-work-dir.outputs.exitcode }}"
exit 1
- name: Debug output
if: always()
run: echo '${{ toJson(steps.no-work-dir.outputs) }}'
- name: Run Darker with correct working-directory
id: right-workdir
if: always()
uses: ./
with:
version: "@gh-action-working-directory"
options: --check --diff
working-directory: ${{ runner.temp }}/test-repo
src: test.py
revision: HEAD
- name: Verify exit code 1 when reformatting is needed
if: always() && steps.right-workdir.outputs.exitcode != '1'
run: |
echo "::error::Darker should have exited with code 1"
echo "::error::It exited with ${{ steps.right-workdir.outputs.exitcode }}"
exit 1
- name: Verify diff output
if: always() && !contains(steps.right-workdir.outputs.stdout, '@@')
run: |
echo "::error::Darker did not output a diff as expected"
exit 1
- name: Run Darker with incorrect working-directory (should not reformat)
if: always()
uses: ./
continue-on-error: true
id: wrong-work-dir
with:
version: "@gh-action-working-directory"
options: --check --diff
working-directory: ${{ runner.temp }}/non-existent-dir
src: test.py
revision: HEAD
- name: Check that Darker failed with a non-existing working-directory
if: always() && steps.wrong-work-dir.outputs.exitcode != '21'
run: |
echo "::error::Darker should have exited with code 21"
echo "::error::It exited with ${{ steps.wrong-work-dir.outputs.exitcode }}"
exit 1
- name: Test file not found error
id: file-not-found
if: always()
uses: ./
continue-on-error: true
with:
version: "@gh-action-working-directory"
options: --check --diff
working-directory: ${{ runner.temp }}/test-repo
src: non_existent_file.py
- name: Check file not found error code
if: always() && steps.file-not-found.outputs.exitcode != '2'
run: |
echo "::error::Darker should have exited with code 2"
echo "::error::It exited with ${{ steps.file-not-found.outputs.exitcode }}"
exit 1
- name: Test invalid arguments error
id: invalid-arguments
if: always()
uses: ./
continue-on-error: true
with:
version: "@gh-action-working-directory"
options: --invalid-option
- name: Check invalid arguments error code
if: always() && steps.invalid-arguments.outputs.exitcode != '3'
run: |
echo "::error::Darker should have exited with code 3"
echo "::error::It exited with ${{ steps.invalid-arguments.outputs.exitcode }}"
exit 1
- name: Test missing dependencies error
id: missing-deps
if: always()
uses: ./
continue-on-error: true
with:
version: "@gh-action-working-directory"
options: --isort
src: test.py
- name: Check missing dependencies error code
if: always() && steps.missing-deps.outputs.exitcode != '4'
run: |
echo "::error::Darker should have exited with code 4"
echo "::error::It exited with ${{ steps.missing-deps.outputs.exitcode }}"
exit 1