Skip to content

Commit

Permalink
- Fix '-' vs '_'.
Browse files Browse the repository at this point in the history
  • Loading branch information
miroslavpojer committed May 28, 2024
1 parent 2a780f7 commit 1fe614a
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 31 deletions.
31 changes: 18 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ This action scans the specified `include_directories` for test files and checks
- **Required**: Yes
- **Default**: `UnitTests,IntegrationTests`

### `include_directories`
### `include-directories`
- **Description**: List of directories to include in the pattern check. This input limits scanning to these directories only.
- **Required**: No
- **Default**: `src/test/`

### `exclude_files`
### `exclude-files`
- **Description**: List of filenames to exclude from suffix checks, separated by commas.
- **Required**: No
- **Default**: None

### `case_sensitivity`
### `case-sensitivity`
- **Description**: Determines if the filename check should be case-sensitive.
- **Required**: No
- **Default**: `true`
Expand All @@ -46,25 +46,28 @@ This action scans the specified `include_directories` for test files and checks
- **Required**: No
- **Default**: `false`

### `report_format`
### `report-format`
- **Description**: Specifies the format of the output report. Options include console, csv, and json.
- **Required**: No
- **Default**: `console`

### `verbose_logging`
### `verbose-logging`
- **Description**: Enable verbose logging to provide detailed output during the action’s execution, aiding in troubleshooting and setup.
- **Required**: No
- **Default**: `false`

### `fail_on_violations`
### `fail-on-violations`
- **Description**: Set to true to fail the action if any convention violations are detected. Set to false to continue without failure.
- **Required**: No
- **Default**: `false`

## Outputs
### `conventions_violations`
### `conventions-violations`
- **Description**: Count test files not complying with the specified suffix conventions.

### `report-path`
- **Description**: Path to the generated report file.

## Installation

Clone the repository and navigate to the project directory:
Expand All @@ -90,6 +93,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Test File Suffix Inspector Default
id: scan-test-files
uses: AbsaOSS/[email protected]
with:
suffixes: 'UnitTests,IntegrationTests'
Expand All @@ -106,16 +110,17 @@ jobs:
- uses: actions/checkout@v2

- name: Test File Suffix Inspector Full Custom
id: scan-test-files
uses: AbsaOSS/[email protected]
with:
suffixes: 'UnitTests,IntegrationTests'
include_directories: 'src/test/'
exclude_files: 'TestHelper.scala,TestUtils'
case_sensitivity: 'true'
include-directories: 'src/test/'
exclude-files: 'TestHelper.scala,TestUtils'
case-sensitivity: 'true'
logic: 'false'
report_format: 'console'
verbose_logging: 'false'
fail_on_violations: 'false'
report-format: 'console'
verbose-logging: 'false'
fail-on-violations: 'false'
```
## Running Unit Tests
Expand Down
21 changes: 12 additions & 9 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,45 @@ inputs:
description: 'List of suffixes that test files should have, separated by commas (e.g., UnitTest,IntegrationTest).'
required: true
default: 'UnitTests,IntegrationTests'
include_directories:
include-directories:
description: 'List of directories to include in the pattern check, separated by commas. Defining this input limits scanning to these directories only.'
required: false
default: 'src/test/'
exclude_directories:
exclude-directories:
description: 'List of project root directory names to exclude in the pattern check, separated by commas. Defining this input limits scanning to these directories only.'
required: false
default: 'dist,node_modules,coverage,target,.idea,.github,.git'
exclude_files:
exclude-files:
description: 'List of filenames to exclude from suffix checks, separated by commas (e.g., HelperUtils,Constants).'
required: false
default: ''
case_sensitivity:
case-sensitivity:
description: 'Determines if the filename check should be case-sensitive.'
required: false
default: 'true'
logic:
description: 'Switch logic from suffix (end of filename) to contains (any part of filename). Set to false to enable contains logic.'
required: false
default: 'true'
report_format:
report-format:
description: 'Specifies the format of the output report. Options: console, csv, and json.'
required: false
default: 'console'
verbose_logging:
verbose-logging:
description: 'Enable verbose logging to provide detailed output during the action’s execution, aiding in troubleshooting and setup.'
required: false
default: 'false'
fail_on_violations:
fail-on-violations:
description: 'Set to true to fail the action if any convention violations are detected. Set to false to continue without failure.'
required: false
default: 'false'
outputs:
conventions_violations:
conventions-violations:
description: 'Count of test files that do not comply with the specified suffix conventions.'
value: ${{ steps.scan-test-files.outputs.conventions_violations }}
value: ${{ steps.scan-test-files.outputs.conventions-violations }}
report-path:
description: 'Path to the generated report file.'
value: ${{ steps.scan-test-files.outputs.report-path }}
runs:
using: 'composite'
steps:
Expand Down
18 changes: 9 additions & 9 deletions src/file_suffix_inspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,17 @@ def run():
try:
suffixes_raw = get_input('suffixes')
suffixes = suffixes_raw.split(',') if suffixes_raw else []
include_directories_raw = get_input('include_directories')
include_directories_raw = get_input('include-directories')
include_directories = include_directories_raw.split(',')
exclude_directories_raw = get_input('exclude_directories')
exclude_directories_raw = get_input('exclude-directories')
exclude_directories = exclude_directories_raw.split(',')
exclude_files_raw = get_input('exclude_files')
exclude_files_raw = get_input('exclude-files')
exclude_files = exclude_files_raw.split(',')
case_sensitivity = get_input('case_sensitivity') == 'true'
case_sensitivity = get_input('case-sensitivity') == 'true'
logic = get_input('logic') == 'true'
report_format = get_input('report_format')
verbose_logging = get_input('verbose_logging') == 'true'
fail_on_violations = get_input('fail_on_violations') == 'true'
report_format = get_input('report-format')
verbose_logging = get_input('verbose-logging') == 'true'
fail_on_violations = get_input('fail-on-violations') == 'true'

if verbose_logging:
info(f'Suffixes: {suffixes}')
Expand Down Expand Up @@ -108,11 +108,11 @@ def scan_directory(directory: Path, level: int = 1):
with open('violations.csv', mode='w', newline='') as file:
writer = csv.writer(file)
writer.writerows([[violation] for violation in violations])
set_output('report_file', 'violations.csv')
set_output('report-path', 'violations.csv')
elif report_format == 'json':
with open('violations.json', mode='w') as file:
json.dump({'violations': violations}, file)
set_output('report_file', 'violations.json')
set_output('report-path', 'violations.json')

if fail_on_violations and violations_count > 0:
set_failed(f'There are {violations_count} test file naming convention violations.')
Expand Down

0 comments on commit 1fe614a

Please sign in to comment.