No description
Find a file
i-ky 768959d633
rss-bot: Remove unnecessary "sender" in request data.
I've experienced that `rss-bot` works fine when using config file, but fails when `--site`, `--api-key`, and `--user` are provided via command line. The error is the following:
```
{'result': 'error', 'msg': 'Invalid mirrored message', 'code': 'BAD_REQUEST'}
```
Debugging shows that in the latter case `rss-bot` calls `zulip.Client.send_message()` with `"sender"` field in `message_data`. In the former case `"sender"` is `None`. Clearly, it is a bug that `rss-bot`'s behaviour depends on `--user` being provided on the command line.

`"sender"` field in request causes [this exception](e26f9180c1/zerver/views/message_send.py (L227)) on the server side.
Judging by surrounding code, `"sender"` is only expected together with a [specific set of clients](e26f9180c1/zerver/views/message_send.py (L186)). `rss-bot` uses a different one:
1b8f1d6e51/zulip/integrations/rss/rss-bot (L204)
Therefore I think, that providing `"sender"` is totally unnecessary.
2023-05-30 17:03:26 -07:00
.github Remove Python 3.6; add Python 3.10. 2023-01-24 12:04:59 -08:00
packaged_helloworld zulip_bots: Add a boilerplate bot for external bots. 2021-07-29 11:08:33 -07:00
stubs mypy: Add stubs for zephyr. 2021-03-10 23:59:15 -08:00
tools tools/provision: Bump required pip version from >=9.0 to >=10. 2022-01-06 01:54:47 +05:30
zulip rss-bot: Remove unnecessary "sender" in request data. 2023-05-30 17:03:26 -07:00
zulip_bots lint: Pin black to avoid inconsistent formatting. 2023-05-29 10:53:22 -07:00
zulip_botserver Remove Python 3.6; add Python 3.10. 2023-01-24 12:04:59 -08:00
.codecov.yml codecov: Adjust failure threshold. 2017-09-14 04:26:12 -07:00
.editorconfig editorconfig: Adjust to 2-space indents for yaml. 2021-02-23 13:51:14 -08:00
.flake8 lint: Disable E203 that will conflict with Black. 2021-05-24 14:02:51 -07:00
.gitignore gitignore: Add swp files (for vim). 2018-10-11 10:36:00 -04:00
.gitlint lint: Setup gitlint. 2021-03-04 11:36:47 -08:00
.mailmap mailmap: Add a few entries. 2022-11-16 15:54:34 -08:00
LICENSE docs: Add more proper LICENSE and THIRDPARTY files. 2020-03-22 16:52:19 -07:00
mypy.ini mypy: Add stubs for zephyr. 2021-03-10 23:59:15 -08:00
NOTICE docs: Add more proper LICENSE and THIRDPARTY files. 2020-03-22 16:52:19 -07:00
pyproject.toml Remove Python 3.6; add Python 3.10. 2023-01-24 12:04:59 -08:00
README.md Replace the custom test runners with pytest. 2021-08-24 17:07:00 -07:00
requirements.txt lint: Pin black to avoid inconsistent formatting. 2023-05-29 10:53:22 -07:00
THIRDPARTY docs: Add more proper LICENSE and THIRDPARTY files. 2020-03-22 16:52:19 -07:00

Zulip API

Build status Coverage status

This repository contains the source code for Zulip's PyPI packages:

The source code is written in Python 3.

Development

This is part of the Zulip open source project; see the contributing guide and commit guidelines.

  1. Fork and clone the Git repo, and set upstream to zulip/python-zulip-api:

    git clone https://github.com/<your_username>/python-zulip-api.git
    cd python-zulip-api
    git remote add upstream https://github.com/zulip/python-zulip-api.git
    git fetch upstream
    
  2. Make sure you have pip.

  3. 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, run

    python3 ./tools/provision -p <path_to_your_python_version>
    
  4. If that succeeds, it will end with printing the following command:

    source /.../python-zulip-api/.../activate
    

    You can 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.

  5. 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

You can run all the tests with:

pytest

or test individual packages with pytest zulip, pytest zulip_bots, or pytest zulip_botserver (see the pytest documentation for more options).

To run the linter, type:

./tools/lint

To check the type annotations, run:

./tools/run-mypy