Skip to content
Snippets Groups Projects
Henrik tom Wörden's avatar
Henrik tom Wörden authored
TST: update due to more informative error message

See merge request !88
3933f573
History

pipeline status

README

Welcome

This is the CaosDB Python Integration Testing repository and a part of the CaosDB project.

Getting started

  • To run tests, start up a CaosDB server with the following properties (documentation for this can be found elsewhere):
    • The CaosDB server must have debugging enabled.
    • The database should be empty.
    • There should be a symlink named debug-scripting-bin inside the custom profile directory, which points to the resources directory here in the pyinttest repository. You can create a symlink like that with the following command (adapt paths to match your setting):
      custom$ ln -s ../../../../caosdb-pyinttest/resources debug-scripting-bin
  • Modify pylinkahead.ini.template and save it as pylinkahead.ini, taking care of the following points:
    • Certificates must be valid and be specified in pylinkahead.ini.
    • Server-side scripting paths must be given, otherwise server-side scripting will be omitted.
      • The local path test_server_side_scripting.bin_dir.local should point to the linkahead-server/scripting/bin directory in linkahead-server sources.
      • The remote path test_server_side_scripting.bin_dir.server should probably be something like /opt/caosdb/git/caosdb-server/scripting/bin-debug. This is the path as seen by the server (in most cases inside the docker container).
    • Paths for the file tests must exist, or be creatable by the testing script and the server.
  • Run the tests with pytest or pytest-3 (depending on your system).
  • If you want to run just a single test, you can also select a single test file:
    pytest-3 tests/test_issues.py
    or a test matching a regular expression:
    pytest-3 tests/test_issues.py -k issue_123

Requirements

  • Running the tests needs pytest, obviously, and also the nose library:
    • pip3 install pytest nose

Run tests agains a remote caosdb server

  • There is a special mark local_server, which marks all test which cannot pass when the server is not on the host where the test suite is running.
  • Start tests with pytest -m "not local_server" or tox -- -m "not local_server".
  • The remote caosdb server must have a TLS certificate which maches the name given in pycaosdb.ini. If you use the LinkAhead distribution of CaosDB, this can be achieved by:
    • linkahead cert_gen -- --hostname <your hostname>
    • linkahead certs -d <your profile path>/custom/other/cert
    • linkahead start

Further Reading

Please refer to the official documentation for more information.

Contributing

Thank you very much to all contributers—past, present, and prospective ones.

Code of Conduct

By participating, you are expected to uphold our Code of Conduct.

How to Contribute

  • You found a bug, have a question, or want to request a feature? Please create an issue.
  • You want to contribute code? Please fork the repository and create a merge request in GitLab and choose this repository as target. Make sure to select "Allow commits from members who can merge the target branch" under Contribution when creating the merge request. This allows our team to work with you on your request.
  • You can also contact us at info (AT) caosdb.org.

License

  • Copyright (C) 2018 Research Group Biomedical Physics, Max Planck Institute for Dynamics and Self-Organization Göttingen.
  • Copyright (C) 2020-2023 Indiscale GmbH info@indiscale.com

All files in this repository are licensed under the GNU Affero General Public License (version 3 or later).