ea370031ee
Encountered several issues with test cases initially, where test cases were failing due to the structure of the tests within the file. This was circumvented by creating a separate instance of the class TicTacToeModel for each test case in order to focus on unit testing. There might be an issue with the _get_game_handlers() function at the end of the file which is used to obtain the model and message information, it seems to be getting the entire class TicTacToeModel instead of creating an instance of the class. Overall, this commit focuses on creating a precedent for writing test cases involving TicTacToeModel, and implements basic cases which can be extended to larger edge cases in the future. Testing was done locally by running ./tools/test-bots until we were able to get the response 'ok' for all the test cases written. We also used coverage in order to test the coverage of the cases. While we were not able to increase the coverage as much as we would have liked, we were able to identify several issues and fix them, hopefully making it easier for future contributors to add additional test cases to TicTacToeModel. Overall, we would like special attention given to the way that TicTacToeModel() was initailized in these tests and whether or not this is a scalable precedent for future tests. Fixes: #122 |
||
---|---|---|
tools | ||
zulip | ||
zulip_bots | ||
zulip_botserver | ||
.codecov.yml | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
mypy.ini | ||
py3_requirements.txt | ||
README.md | ||
requirements.txt |
Zulip API
This repository contains the source code for Zulip's PyPI packages:
zulip
: PyPI package for Zulip's API bindings.zulip_bots
: PyPI package for Zulip's bots and bots API.zulip_botserver
: PyPI package for Zulip's Flask Botserver.
The source code is written in Python 3.
Development
-
Fork and clone the Git repo:
git clone https://github.com/<your_username>/python-zulip-api.git
-
Make sure you have pip and virtualenv installed.
-
cd
into the repository cloned earlier:cd python-zulip-api
-
Run:
python3 ./tools/provision
This sets up a virtual Python environment in
zulip-api-py<your_python_version>-venv
, where<your_python_version>
is your default version of Python. If you would like to specify a different Python version, runpython3 ./tools/provision -p <path_to_your_python_version>
-
If that succeeds, it will print end with printing the following command:
source /.../python-zulip-api/.../activate
You can run run this command to enter the virtual environment. You'll want to run this in each new shell before running commands from
python-zulip-api
. -
Once you've entered the virtualenv, you should see something like this on the terminal:
(zulip-api-py3-venv) user@pc ~/python-zulip-api $
You should now be able to run any commands/tests/etc. in this virtual environment.
Running tests
To run the tests for
-
zulip: run
./tools/test-zulip
-
zulip_bots: run
./tools/test-bots
-
zulip_botserver: run
./tools/test-botserver
To run the linter, type:
./tools/lint
To check the type annotations, run:
./tools/run-mypy