Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
"Feature reporter" comes from the need to provide MS Word reports to customer.
It aims to pretty print a set of plain text .feature
files into one shareable document.
Optionally, it adds the last automated execution of these scenarios.
Please note! This package heavily relies on the Behave package in order to process feature file and execution results format.
Moreover, it provides a basic behave csv formatter. You can:
In my feature file I usually add a tag for the epic's name (@epic=
) and a scenario id (@id=
).
The csv formatter use these tag by default. Please see below for more details on usage.
pip install eaiscenarioreporter
from featurereporter import ExportUtilities
my_export = ExportUtilities()
my_export.feature_repository = "path/to/the/feature/files/folder"
my_export.create_application_documentation()
# Create the demo.docx document in the current folder.
You can start the reporter's GUI using the following command :
python3 -m featurereporter
Feature reporter can be called directly from the command line.
# Display help
> python3 -m featurereporter -h
usage: featurereporter.py [-h] [--tag TAG] [--title TITLE] [--repository REPOSITORY] [--forewords FOREWORDS] [--output OUTPUT] [--execution EXECUTION] [--license]
optional arguments:
-h, --help show this help message and exit
--tag TAG Invariant pointing to a user story
--title TITLE The document's title
--repository REPOSITORY
The folder where the feature files are
--forewords FOREWORDS
The folder where forewords markdown files are. It is not a recursive discovery.
--output OUTPUT The filename the docu
--execution EXECUTION
Behave plain test output in order to also print the last execution result
--license Display the license.
python3 -m featurereporter --repository path/to/the/feature/files/folder
All descriptions can use Markdown syntax to enhance the report display in docx.
[Bb]usiness [Rr]ules
will be replaced by a title with the correct depth Business rules
!!Worflow:\s*([\.\d\w\-\_\\\/]*)\s*
points out a puml diagram which will be generated on the fly.
The puml file path is relative to the feature folder holder. For example !!Workflow: ../business/workflow.puml
will generate the workflow.puml
diagram in the business
folder of the feature parent folder.You can include markdown files as a "Forewords" section. They will be processed in alphabetical order.
!!Worflow:\s*([\.\d\w\-\_\\\/]*)\s*
does the same as for feature description. However, the base folder is the forewords' folder.You can include the full list of the documentation execution results. It's based on Behave's plain output reporter.
It generates a circular graph (passed, failed, skipped) and list each scenario result.
There is no control on the sections order nor ability to display only failed scenarios.
Currently, all puml schema are processed using the GraphViz library. Your system needs java and GraphViz.
The plantuml's jar version is 1.2022.1. Please see PlantUml page.
To use the default setting just use the following (-d
is for dry-run)
behave -d -f featurereporter.csvformatter:EaiCsv -o output.csv
Add in behave.ini
the following to update the tag setting. You can have a =
symbol in your tag definition.
[behave.userdata]
EaiCsv.epic = my_epic_tag
EaiCsv.scenario = my_scenario_id_tag
The csv output is
epic, feature_name, scenario_id, scenario_name, status, order
"epic name fetched from the epic's tag", "feature name", "scenario id fetched from the id's tag and order for outline scenario", "scenario name", "execution status", "order for outline scenario"
The first line contains the csv header.
To use the default setting just use the following (-d
is for dry-run).
Please mind this formatter is for dry-run only.
behave -d -f featurereporter.csvformatter:EaiCsvFull -o output.csv
Add in behave.ini
the following to update the tag setting. You can have a =
symbol in your tag definition.
[behave.userdata]
EaiCsv.epic = my_epic_tag
EaiCsv.scenario = my_scenario_id_tag
The csv output is
epic, feature_filename, feature_name, feature_tags, feature_description, scenario_id, scenario_name, scenario_tags, scenario_description, scenario_is_outline, scenario_steps
"epic name", "feature filename", "feature name (following the 'Feature:' element)", "feature tags", "feature description", "scenario id fetched from the id's tag", "scenario name", "scenario tags", "scenario description", "True if the scenario is an outline one", "scenario's steps without background"
The first line contains the csv header.
This tool is still under development. There is currently no arguments control nor formal tests.
I use it in my daily work to produce report.
Please contact me for any concern.
FAQs
Turns folder of gherkin feature files into a docx file.
We found that eaiscenarioreporter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.