archangelic / pinhook

the pluggable python framework for IRC bots and Twitch bots
https://archangelic.github.io/pinhook/
MIT License
31 stars 4 forks source link

Add tests #10

Open archangelic opened 7 years ago

archangelic commented 7 years ago

I feel like, in order for this to be a solid project, it will need some tests. I am way out of my depth with writing tests. So any help would be greatly appreciated!

ghost commented 7 years ago

You can assign this to me. :) I was thinking about tests last night while plunking away at some plugins.

archangelic commented 6 years ago

Is this something that can still be done? I have some thoughts about making the code testable without an irc server.

Lucidiot commented 6 years ago

I will try to make a pull request with a basic unit test and CI configuration already done to at least have that ready.

I will use Travis CI for continuous integration (I can provide a .travis.yml file, but you will have to set that up on your side, as the repo owner) and Coveralls for code coverage (a very important metric to make sure your code is covered by unit tests). There are multiple unit testing frameworks out there for Python but Python's built-in unittest module easily does the job. I will have to make changes to the setup.py and add a section to the README about a proper development setup, or else we could have serious trouble with dependencies between CI and the actual package.

What about linting?

I also can easily setup some linting using flake8. Flake8 is a bundle of tools to perform multiple checks on your code; the actual linting is done by pycodestyle, to fit the PEP 8 style guide, but there are other tools to check for example for unused variables or imports. This is quite useful to prevent some typos and integrates pretty well with IDEs (it is also very easily to use as a CLI). So, my question is:

*waiter voice* Would you like some flake8 with that, @archangelic?