Skip to content

HeliumEdu/ci-tests

Repository files navigation

Python Versions

Helium CI Tests

Getting Started

CI tests are developed using Python and Tavern.

The following environment variables must be set for the CI tests to run:

  • ENVIRONMENT (optional; if not prod, same as allowed in platform)
  • AWS_REGION (optional; if not prod, set to AWS S3 region)
  • PROJECT_APP_HOST (optional; if not prod, same as chosen in platform for a frontend environment)
  • PROJECT_API_HOST (optional; if not prod, same as chosen in platform for a platform API environment)
  • PLATFORM_TWILIO_ACCOUNT_SID (same as used in platform worker to send texts)
  • PLATFORM_TWILIO_AUTH_TOKEN (same as used in platform worker to send texts)
  • CI_AWS_S3_ACCESS_KEY_ID (same as used in platform web to upload attachments)
  • CI_AWS_S3_SECRET_ACCESS_KEY (same as used in platform web to upload attachments)
  • CI_TWILIO_RECIPIENT_PHONE_NUMBER (a phone number to which test texts will be sent)

These CI tests require heliumedu-ci-test@heliumedu.dev to be setup to receive emails and store them in an S3 bucket, as documented here. The Terraform for prod can be applied to configure this.

Once the above is done, the CI tests can be run with:

make test

Development

Running Locally

These tests can be run locally against Docker to make development easier. The easiest way to achieve this is to use the deploy project to setup the entire Helium stack locally. An Internet connection is still necessary to validate all end-to-end functionality (emails use AWS SES, text messages use Twilio). The minimal Terraform for dev-local can be applied to configure these services.

Once the above is done, the CI tests can be run locally with:

make test-local