Service providing access to consolidated course and program metadata.
Documentation is hosted on Read the Docs. The source is hosted in this repo's docs directory. The docs are automatically rebuilt and redeployed when commits are merged to master. To contribute, please open a PR against this repo.
The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see the LICENSE file for details.
How To Contribute
Contributions are welcome. Please read How To Contribute for details. Even though it was written with
edx-platform in mind, these guidelines should be followed for Open edX code in general.
Is the build failing because translations are out of date?
Running Tests Locally, Fast
There is a test settings file
course_discovery.settings.test_local that allows you to persist the test
database between runs of the unittests (as long as you don't restart your container). It stores the SQLite
database file at
/dev/shm, which is a filesystem backed by RAM. Using this test file in conjunction with
--reuse-db option can significantly cut down on local testing iteration time. You can use this
pytest course_discovery/apps/course_metadata/tests/test_utils.py --ds=course_discovery.settings.test_local --reuse-db
The first run will incur the normal cost of database creation (typically around 30 seconds), but the second run
will completely skip that startup cost, since the
--reuse-db option causes pytest to use the already persisted
database in the
/dev/shm directory. If you need to change models or create databases between runs, you can tell
pytest to recreate the database with
Debugging Tests Locally
Pytest in this repository uses the pytest-xdist package for distributed testing. This is configured in the pytest.ini file. However, pytest-xdist does not support pdb.set_trace().
In order to use pdb when debugging Python unit tests, you can use the pytest-no-xdist.ini file instead. Use the
-c option to the pytest command to specify which ini file to use.
pytest -c pytest-no-xdist.ini --ds=course_discovery.settings.test --durations=25 course_discovery/apps/publisher/tests/test_views.py::CourseRunDetailTests::test_detail_page_with_comments
Reporting Security Issues
Please do not report security issues in public. Please email firstname.lastname@example.org.