Browse Source

Fix statement about running coverage

master
Shauna 7 years ago
parent
commit
988c93c9af
  1. 24
      README.md
  2. 6
      docs/testing.md

24
README.md

@ -1,12 +1,6 @@
## What is this?
oh-irc-bot (or "WelcomeBot", its IRC nick) is a bot for welcoming people into the #openhatch irc channel
when no one is paying attention. The goals are to:
1. alert community members when someone new enters the room and says hello (either by using their nick
in a response, or by sending a private message)
2. help a person to feel welcome even when there's no one around, and providing more information about
staying in touch
oh-irc-bot (or "WelcomeBot", its IRC nick) is a bot for welcoming people into the #openhatch irc channel when no one is paying attention. It has two main goals: first, to alert community members when someone new enters the room and says hello (either by using their nick in a response, or by sending a private message). Second, it helps the new person to feel welcome even when there's no one around, and provides more information to them about staying in touch.
## Basic Structure
@ -16,11 +10,12 @@ staying in touch
2. If someone says hello to the bot, the bot says hello back.
3. If someone asks the bot for information (via key phrases like "help", "faq", etc) the bot explains what it is and links to this repository.
The repository also contains <code>test_bot.py</code>, which is a set of automated tests for the bot. To learn more about these, see __Testing__ below. <code>test_nicks.csv</code>, which is the set of nicks used for the automated tests.
The repository contains <code>test_bot.py</code>, which is a set of automated tests for the bot. To learn more about these, see __Testing__ below or [the testing tutorial](https://github.com/shaunagm/WelcomeBot/blob/master/docs/testing.md). It also contains <code>test_nicks.csv</code>, the set of nicks used for the automated tests.
Finally, we have a docs folder which contains tutorial-style instructions for various concepts used by WelcomeBot. Currently there is one tutorial, for unit testing. [Check it out!](https://github.com/shaunagm/WelcomeBot/blob/master/docs/testing.md)
Finally, we have a docs folder which contains tutorial-style instructions for various concepts used by WelcomeBot. Currently there is one tutorial, for unit testing.
## Setting up
Currently, the bot is only compatible up to Python 2.7.
To run the bot:
@ -52,16 +47,19 @@ When creating tests, you can use the following series of commands to see whether
<code>
./bin/coverage run test_bot.py
./bin/coverage html
</code>
_Note_: You will likely need to install coverage. The above command assumes you have installed it to a virtual environment. If you haven't, the command to use is: <code>coverage run test_bot.py</code>
You can then see the results in `htmlcov/index.html`.
_Note_: You will likely need to install coverage. The above command assumes you have installed it to a virtual environment. If you haven't, use `coverage` instead of `bin/coverage`, for example: <code>coverage run test_bot.py</code>
## How to help
The [issue tracker](https://github.com/shaunagm/oh-irc-bot/issues?state=open) lists improvements we want to make. I strongly encourage you to contact me and say hello before you get started (I am shauna on the #openhatch IRC). Please feel free to submit pull requests to address these issues. If you're not familiar with how to do this using github, see [here](https://openhatch.org/wiki/Git_Basics). You can also always ask me for help or clarification.
The [issue tracker](https://github.com/shaunagm/oh-irc-bot/issues?state=open) lists improvements we want to make. Tasks that are better for newcomers are labelled [first task](https://github.com/shaunagm/WelcomeBot/labels/first%20task).
I strongly encourage you to contact me and say hello before you get started (I am shauna on the #openhatch IRC). Please feel free to submit pull requests to address these issues. If you're not familiar with how to do this using github, see [here](https://openhatch.org/wiki/Git_Basics). You can also always ask me for help or clarification.
## Credit
This bot was adapted from code found [here](http://wiki.shellium.org/w/Writing_an_IRC_bot_in_Python).
Also [this](http://docs.python.org/2/library/queue.html) has been very helpful.

6
docs/testing.md

@ -121,7 +121,7 @@ Let's take a look at some output you might see. First, there is a series of dot
...........F.FF.....EE.......F
Each dot or letter refers to a specific test being run. An F means that the test failed. An E means that there was an error.
Each dot or letter refers to a specific test being run. An F means that the test failed. An E means that there was an error. A failed test is one in which the assert statement is incorrect, whereas a test that returns an error had some bug in the test that prevented it from reaching or finishing the assert statement.
Let's take a closer look at what a failed test looks like. I'm going to generate an error by altering `test_custom_wait_time()` to specify the wrong amount in `assertEqual()`. You can cause similar test failures by changing assertions in `test_bot.py`.
@ -147,11 +147,13 @@ Different types of failures will give different output of varying helpfulness.
If you want to expand the tests to cover a new piece of code -- either code you have written, or that someone else has - you might find [Coverage](http://nedbatchelder.com/code/coverage/) to be a useful tool. After installing coverage, you can run it, either in a virtual environment:
./bin/coverage run test_bot.py
./bin/coverage run test_bot.py
./bin/coverage html
Or not in a virtual environment:
coverage run test_bot.py
coverage html
This will generate an html file which can be found by opening `htmlcov/index.html`. This file gives you a report on the percentage of code covered by tests. If you click the file being tested (not the test file, which should be covered 100%) you'll see a handy color-coded copy of the file indicated what is covered and what isn't. Each statement is either covered ("run"), not covered ("missing") or excluded. Excluded statements are excluded via the comment `pragma: no cover`, which we've used for WelcomeBot to ignore code interfacing with the socket library, as we're not sure how to test that yet.

Loading…
Cancel
Save