+
+

Local Development & Testing#

+

To test your features locally, there are a few possible approaches:

+
    +
  1. Install your local copy of botcore into a pre-existing project such as bot

  2. +
  3. Use the provided template from the dev/bot folder

  4. +
+

See below for more info on both approaches.

+

What’s going to be common between them is you’ll need to write code to test your feature. +This might mean adding new commands, modifying existing ones, changing utilities, etc. +The steps below should provide most of the groundwork you need, but the exact requirements will +vary by the feature you’re working on.

+
+

Option 1#

+
    +
  1. Navigate to the project you want to install bot-core in, such as bot or sir-lancebot

  2. +
  3. Run pip install /path/to/botcore in the project’s environment

    +
      +
    • The path provided to install should be the root directory of this project on your machine. +That is, the folder which contains the pyproject.toml file.

    • +
    • Make sure to install in the correct environment. Most Python Discord projects use +poetry, so you can run poetry run pip install /path/to/botcore.

    • +
    +
  4. +
  5. You can now use features from your local bot-core changes. +To load new changes, run the install command again.

  6. +
+
+
+

Option 2#

+
    +
  1. Copy the bot template folder to the root of the bot-core project. +This copy is going to be git-ignored, so you’re free to modify it however you like.

  2. +
  3. Run the project

    +
      +
    • Locally: You can run it on your system using python -m bot

    • +
    • Docker: You can run on docker using docker compose up -d bot.

    • +
    +
  4. +
  5. Configure the environment variables used by the program. +You can set them in an .env file in the project root directory. The variables are:

    +
      +
    • TOKEN (required): Discord bot token, with all intents enabled

    • +
    • GUILD_ID (required): The guild the bot should monitor

    • +
    • PREFIX: The prefix to use for invoking bot commands. Defaults to mentions and !

    • +
    • ALLOWED_ROLES: A comma seperated list of role IDs which the bot is allowed to mention

    • +
    +
  6. +
  7. You can now test your changes. You do not need to do anything to reinstall the +library if you modify your code.

  8. +
+
+

Tip

+

The docker-compose included contains services from our other applications +to help you test out certain features. Use them as needed.

+
+
+
+ +