Skip to content

Commit

Permalink
tests: Fix and Improve unit tests (#20)
Browse files Browse the repository at this point in the history
  • Loading branch information
xmnlab committed Jan 21, 2024
1 parent 742e0d3 commit 0de66f4
Show file tree
Hide file tree
Showing 19 changed files with 172 additions and 138 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

### Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.
Describe what you were trying to get done. Tell us what happened, what went
wrong, and what you expected to happen.

### What I Did

Expand Down
3 changes: 2 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ About this PR:
Author's checklist:

- [ ] I have reviewed the changes and it contains no misspelling.
- [ ] The code is well commented, especially in the parts that contain more complexity.
- [ ] The code is well commented, especially in the parts that contain more
complexity.
- [ ] New and old tests passed locally.

## Additional information
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ jobs:
conda-solver: libmamba

- name: Install dependencies
run: poetry install
run: |
sudo apt install ffmpeg
poetry install
- name: Run tests
run: makim tests.unittest
Expand Down
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.makim.yaml
docs/changelog.md
6 changes: 6 additions & 0 deletions .prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
overrides:
- files: "*.md"
options:
parser: remark
proseWrap: always
printWidth: 80
36 changes: 18 additions & 18 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
nationality, personal appearance, race, religion, or sexual identity and
orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
Expand All @@ -22,17 +22,17 @@ community include:
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
- Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Publishing others' private information, such as a physical or email address,
without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

Expand Down Expand Up @@ -60,8 +60,8 @@ representative at an online or offline event.

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
opensciencelabs@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
opensciencelabs@gmail.com. All complaints will be reviewed and investigated
promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
Expand All @@ -82,15 +82,15 @@ behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.
**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

Expand All @@ -109,17 +109,17 @@ Violating these terms may lead to a permanent ban.
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.
**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

Expand Down
87 changes: 40 additions & 47 deletions docs/contributing.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Contributing

In order to be able to contribute, it is important that you understand
the project layout.
This project uses the _src layout_, which means that the package code is located
at `./src/artbox`.
In order to be able to contribute, it is important that you understand the
project layout. This project uses the _src layout_, which means that the package
code is located at `./src/artbox`.

For my information, check the official documentation:
https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/
Expand All @@ -30,26 +29,24 @@ Report bugs at https://github.com/ggpedia/artbox/issues.
If you are reporting a bug, please include:

- Your operating system name and version.
- Any details about your local setup that might be helpful in
troubleshooting.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.

### Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with “bug” and
“help wanted” is open to whoever wants to implement it.
Look through the GitHub issues for bugs. Anything tagged with “bug” and “help
wanted” is open to whoever wants to implement it.

### Implement Features

Look through the GitHub issues for features. Anything tagged with
“enhancement” and “help wanted” is open to whoever wants to implement
it.
Look through the GitHub issues for features. Anything tagged with “enhancement”
and “help wanted” is open to whoever wants to implement it.

### Write Documentation

GGPEDIA Youtube could always use more documentation,
whether as part of the official GGPEDIA Youtube docs,
in docstrings, or even on the web in blog posts, articles, and such.
GGPEDIA Youtube could always use more documentation, whether as part of the
official GGPEDIA Youtube docs, in docstrings, or even on the web in blog posts,
articles, and such.

### Submit Feedback

Expand All @@ -59,10 +56,9 @@ https://github.com/ggpedia/artbox/issues.
If you are proposing a feature:

- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to
implement.
- Remember that this is a volunteer-driven project, and that
contributions are welcome :)
- Keep the scope as narrow as possible, to make it easier to implement.
- Remember that this is a volunteer-driven project, and that contributions are
welcome :)

## Get Started!

Expand All @@ -75,31 +71,28 @@ Ready to contribute? Here’s how to set up `artbox` for local development.
$ git clone git@github.com:your_name_here/artbox.git

3. Install your local copy into a virtualenv. Assuming you have
virtualenvwrapper installed, this is how you set up your fork for
local development::
virtualenvwrapper installed, this is how you set up your fork for local
development::

$ mkvirtualenv artbox
$ cd artbox/
$ python setup.py develop
$ mkvirtualenv artbox $ cd artbox/ $ python setup.py develop

4. Create a branch for local development::

$ git checkout -b name-of-your-bugfix-or-feature

Now you can make your changes locally.

5. When you’re done making changes, check that your changes pass flake8
and the tests, including testing other Python versions with tox::
5. When you’re done making changes, check that your changes pass flake8 and the
tests, including testing other Python versions with tox::

$ make lint
$ make test
$ make lint $ make test

To get flake8 and tox, just pip install them into your virtualenv.

6. Commit your changes and push your branch to GitHub::

$ git add . $ git commit -m “Your detailed description of your
changes.” $ git push origin name-of-your-bugfix-or-feature
$ git add . $ git commit -m “Your detailed description of your changes.” $
git push origin name-of-your-bugfix-or-feature

7. Submit a pull request through the GitHub website.

Expand All @@ -108,9 +101,9 @@ Ready to contribute? Here’s how to set up `artbox` for local development.
Before you submit a pull request, check that it meets these guidelines:

1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated.
Put your new functionality into a function with a docstring, and add
the feature to the list in README.rst.
2. If the pull request adds functionality, the docs should be updated. Put your
new functionality into a function with a docstring, and add the feature to
the list in README.rst.
3. The pull request should work for Python >= 3.8.

## Tips
Expand All @@ -123,32 +116,32 @@ $ pytest tests.test_ggpyt

## Release

This project uses semantic-release in order to cut a new release
based on the commit-message.
This project uses semantic-release in order to cut a new release based on the
commit-message.

### Commit message format

**semantic-release** uses the commit messages to determine the consumer
impact of changes in the codebase. Following formalized conventions for
commit messages, **semantic-release** automatically determines the next
**semantic-release** uses the commit messages to determine the consumer impact
of changes in the codebase. Following formalized conventions for commit
messages, **semantic-release** automatically determines the next
[semantic version](https://semver.org) number, generates a changelog and
publishes the release.

By default, **semantic-release** uses [Angular Commit Message
Conventions](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format).
The commit message format can be changed with the `preset` or `config`
options\_ of the
By default, **semantic-release** uses
[Angular Commit Message Conventions](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format).
The commit message format can be changed with the `preset` or `config` options\_
of the
[@semantic-release/commit-analyzer](https://github.com/semantic-release/commit-analyzer#options)
and
[@semantic-release/release-notes-generator](https://github.com/semantic-release/release-notes-generator#options)
plugins.

Tools such as [commitizen](https://github.com/commitizen/cz-cli) or
[commitlint](https://github.com/conventional-changelog/commitlint) can
be used to help contributors and enforce valid commit messages.
[commitlint](https://github.com/conventional-changelog/commitlint) can be used
to help contributors and enforce valid commit messages.

The table below shows which commit message gets you which release type
when `semantic-release` runs (using the default configuration):
The table below shows which commit message gets you which release type when
`semantic-release` runs (using the default configuration):

| Commit message | Release type |
| -------------------------------------------------------------- | ---------------- |
Expand All @@ -160,5 +153,5 @@ when `semantic-release` runs (using the default configuration):
source:
<https://github.com/semantic-release/semantic-release/blob/master/README.md#commit-message-format>

As this project uses the `squash and merge` strategy, ensure to apply
the commit message format to the PR's title.
As this project uses the `squash and merge` strategy, ensure to apply the commit
message format to the PR's title.
13 changes: 6 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,23 @@ ArtBox is a tool set for handling multimedia files.
Python versions. If you want to know about bandit you can check its
[documentation](https://bandit.readthedocs.io/en/latest/).

- Finds unused code: [Vulture](https://github.com/jendrikseipp/vulture)
is useful for cleaning up and finding errors in large code bases in
Python.
- Finds unused code: [Vulture](https://github.com/jendrikseipp/vulture) is
useful for cleaning up and finding errors in large code bases in Python.

- Complexity of functions and modules: We use
[McCabe](https://github.com/PyCQA/mccabe) to identify the complexity in our
Python code that may be difficult to maintain or understand. By identifying
complex code at the outset, we as developers can refactor it to make it easier
to maintain and understand. In summary, McCabe helps us to improve the quality
of our code and make it easier to maintain. If you would like to learn more
about McCabe and code complexity, you can visit [McCabe - Code Complexity
Checker](https://here-be-pythons.readthedocs.io/en/latest/python/mccabe.html).
about McCabe and code complexity, you can visit
[McCabe - Code Complexity Checker](https://here-be-pythons.readthedocs.io/en/latest/python/mccabe.html).
This tool is included with [Flake8](https://flake8.pycqa.org/en/latest/).

- TODO

## Credits

This package was created with Cookieninja and the
[osl-incubator/scicookie](https://github.com/osl-incubator/scicookie)
project template.
[osl-incubator/scicookie](https://github.com/osl-incubator/scicookie) project
template.
14 changes: 6 additions & 8 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,31 @@

## Stable release

To install GGPEDIA Youtube, run this command in your
terminal:
To install GGPEDIA Youtube, run this command in your terminal:

```bash
$ pip install artbox
```

This is the preferred method to install GGPEDIA Youtube,
as it will always install the most recent stable release.
This is the preferred method to install GGPEDIA Youtube, as it will always
install the most recent stable release.

If you don't have [pip](https://pip.pypa.io) installed, this
[Python installation guide](http://docs.python-guide.org/en/latest/starting/installation/)
can guide you through the process.

## From sources

The sources for GGPEDIA Youtube can be downloaded from
the [Github repo](https://github.com/ggpedia/artbox).
The sources for GGPEDIA Youtube can be downloaded from the
[Github repo](https://github.com/ggpedia/artbox).

You can either clone the public repository:

```bash
$ git clone https://github.com/ggpedia/artbox
```

Or download the
[tarball](https://github.com/ggpedia/artbox/tarball/main):
Or download the [tarball](https://github.com/ggpedia/artbox/tarball/main):

```bash
$ curl -OJL https://github.com/ggpedia/artbox/tarball/main
Expand Down
4 changes: 2 additions & 2 deletions src/artbox/videos.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from abc import abstractmethod

from moviepy.editor import AudioFileClip, VideoFileClip
from pytube import YouTube
from pytube import YouTube as PyYouTube

from artbox.base import ArtBox

Expand All @@ -31,7 +31,7 @@ def download(self):
if not video_url:
raise Exception("Argument `url` not given.")

video = YouTube(video_url)
video = PyYouTube(video_url)

# Filter the stream by resolution if provided,
# else get the highest resolution
Expand Down
Binary file removed tests/__pycache__/__init__.cpython-311.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added tests/data/audios/pixabay-science.mp3
Binary file not shown.
1 change: 1 addition & 0 deletions tests/data/notes/set1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["E", "D#", "E", "D#", "E", "B", "D", "C", "A"]
Binary file added tests/data/videos/pixabay-fuji.mp4
Binary file not shown.
Loading

0 comments on commit 0de66f4

Please sign in to comment.