summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-11-21 18:43:15 +0000
committerGerrit Code Review <review@openstack.org>2014-11-21 18:43:15 +0000
commitb80fceaf40aa11553fad2926ef517588b7d0c966 (patch)
tree8f68e9e92713875d5c98ea71c2cc73ba4dec9217
parent8a37f67050936f86ab1fb121c597087a4cb3ffc9 (diff)
parentb6d363def0af229fe55dcdb96d271f14eb428562 (diff)
downloadoslo-db-b80fceaf40aa11553fad2926ef517588b7d0c966.tar.gz
Merge "Add info on how to run unit tests"
-rw-r--r--CONTRIBUTING.rst39
1 files changed, 39 insertions, 0 deletions
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index a6a308c..024bfc2 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -19,3 +19,42 @@ Pull requests submitted through GitHub will be ignored.
Bugs should be filed on Launchpad, not GitHub:
https://bugs.launchpad.net/oslo.db
+
+
+How to run unit tests
+=====================
+
+oslo.db (as all OpenStack projects) uses tox to run unit tests. You can find
+general information about OpenStack unit tests and testing with tox in wiki_.
+
+oslo.db tests use MySQL-python as the default MySQL DB API driver (which is
+true for OpenStack), and psycopg2 for PostgreSQL. pip will build these libs in
+your venv, so you must ensure that you have the required system packages
+installed. For Ubuntu/Debian they are python-dev, libmysqlclient-dev and
+libpq-dev. For Fedora/CentOS - gcc, python-devel, postgresql-devel and
+mysql-devel.
+
+The oslo.db unit tests system allows to run unittests on real databases. At the
+moment it supports MySQL, PostgreSQL and SQLite.
+For testing on a real database backend you need to set up a user
+``openstack_citest`` with password ``openstack_citest`` on localhost (some
+OpenStack projects require a database named 'openstack_citest' too).
+Please note, that this user must have permissions to create and drop databases.
+If the testing system is not able to connect to the backend, tests on it will
+be skipped.
+
+For PostgreSQL on Ubuntu you can create a user in the following way::
+
+ sudo -u postgres psql
+ postgres=# create user openstack_citest with createdb login password
+ 'openstack_citest';
+
+For MySQL you can use the following commands::
+
+ mysql -u root
+ mysql> CREATE USER 'openstack_citest'@'localhost' IDENTIFIED BY
+ 'openstack_citest';
+ mysql> GRANT ALL PRIVILEGES ON * . * TO 'openstack_citest'@'localhost';
+ mysql> FLUSH PRIVILEGES;
+
+.. _wiki: https://wiki.openstack.org/wiki/Testing#Unit_Tests