To report a problem, create a GitHub issue.
It would be much helpful to provide some information: a reference to a live
stream, command executed, and output. If available, please include all error
messages and tracebacks. One way is to run a command with the --report
option:
$ ytpb --report COMMAND ...
This will create a debug (--debug
is automatically implied) log file
ytpb-yyyymmdd-HHMMSS.log
. For privacy, actual IP addresses in the output will
be replaced with 0.0.0.0
.
To install all development requirements, simply run:
$ pip install -e .[dev]
Ytpb uses pytest for unit and functional tests.
Here is the structure of the tests
directory:
.
...
├── cli
├── data
│ ├── expected
│ ├── gap-cases
│ └── segments
...
— unit tests are located herecli
contains functional tests for the CLI applicationdata
contains testing data and artifactsexpected
— expected test outputsgap-cases
— data for testing gap casessegments
— media segments
To run all tests:
$ python -m pytest tests
Any network calls are disabled by the pytest-socket plugin. Instead, the responses package is used for mocking responses from remote sources.
The actual test outputs are compared to the pre-defined expected ones with the
help of the pytest-matcher
plugin. Such tests are characterized by the use of the plugin's expected_out
fixture. The expected outputs are stored as files in
./tests/data/expected
. Before running newly added tests, expectation files
should be generated (or if needed, updated for existing tests):
$ python -m pytest --pm-save-patterns ...
And then, you can run tests as usual.