summaryrefslogtreecommitdiffstats
path: root/README.rst
diff options
context:
space:
mode:
authorvamahaja <vamahaja@redhat.com>2019-01-07 14:24:06 +0530
committerApeksha D khakharia <akhakhar@redhat.com>2019-02-04 12:27:24 +0000
commit59725c45006cf0f7062635eb797177ee00aa1343 (patch)
treef249df4ce2b943bc037d489d6c6123ed68f24125 /README.rst
parent28e7e4812b442d1851ea34368622a003330e1b54 (diff)
Added README.rst document with new details
Change-Id: I7f4fea8f197294f2df8bba19c8c0f0422b62892a Signed-off-by: vamahaja <vamahaja@redhat.com>
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst177
1 files changed, 177 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..5396e7e
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,177 @@
+#######################
+Openshift Storage Tests
+#######################
+
+This repo contains `test cases` and `functions` for `storage` on OpenShift. The
+functions can be installed as python package and used in any other python
+project.
+
+***************
+Getting started
+***************
+
+Prerequisites
+*************
+
+Create setup with below system requirements and install required packages on
+host from which this repo is used as library or tests are executed.
+
+System Requirements
+===================
+
+* 1 Master node
+* 3 Storage nodes
+* Passwordless ssh from the host (machine from where the tests would be run)
+ to all the nodes in the cluster
+* Each node in the trusted storage pool should have 2 mandatory and 1 optional
+ devices
+
+ #. Device 1 (part of the topology)
+ #. Device 2 (part of the topology)
+ #. Device 3 (Optional additional device not part of the topology)
+
+Installing `tox` on host
+========================
+
+`tox` aims to automate and standardize testing in Python. It is generic
+`virtualenv` management and test command line tool you can use for
+
+* Checking your package installs correctly with different Python versions and
+ interpreters
+* Running your tests in each of the environments, configuring your test tool of
+ choice
+* Acting as frontend to Continuous integration servers, greatly reducing
+ boilerplates and merging CI and shell-based testing
+
+Refer `tox doc <https://tox.readthedocs.io/en/latest/#>`__ for more
+information.
+
+Below are the instructions to install `tox` on host
+
+* Install below system packages
+
+ .. code-block::
+
+ $ yum install python-pip git gcc python-devel
+
+* Install `tox` package
+
+ .. code-block::
+
+ $ pip install git+git://github.com/tox-dev/tox.git@2.9.1#egg=tox
+
+Executing the test cases
+************************
+
+* Create a config file which lists out the OCP configurations like master and
+ storage node details, heketi related configurations etc. Sample config file
+ can be found under `tests` directory
+
+ .. code-block::
+
+ $ tests/cns_tests_sample_config.yml
+
+* To run test cases in a virtual environment:
+
+ .. code-block::
+
+ $ tox -e functional -- glusto -c <config_file> \
+ '--pytest=-v -rsx <test_file_path_or_dir>'
+
+ For example:
+ * Execute single test case from test class file
+
+ .. code-block::
+
+ $ tox -e functional -- glusto -c \
+ ../tests/glusterfs-containers-tests-config.yaml \
+ '--pytest=-v -rsx \
+ ../tests/functional/common/arbiter/test_arbiter.py \
+ -k test_arbiter_pvc_create'
+
+ * Execute all test cases from test class file
+
+ .. code-block::
+
+ $ tox -e functional -- glusto -c \
+ ../tests/glusterfs-containers-tests-config.yaml \
+ '--pytest=-v -rsx
+ tests/functional/common/arbiter/test_arbiter.py'
+
+ * Execute all test cases from test directory
+
+ .. code-block::
+
+ $ tox -e functional -- glusto -c \
+ ../tests/glusterfs-containers-tests-config.yaml \
+ '--pytest=-v -rsx ../tests'
+
+Writing tests in `glusterfs-containers-tests`
+*********************************************
+
+`tests` directory in `glusterfs-containers-tests` contains test cases. One
+might want to create a directory with feature name as the name of test
+directory under tests to add new test cases.
+
+Similar to `glusto-tests <https://github.com/gluster/glusto-tests>`__, test
+cases in `glusterfs-containers-tests` can be written using standard `PyUnit`,
+`PyTest` or `Nose` methodologies as supported by `glusto` framework.
+
+One can follow the `PyUnit <http://glusto.readthedocs.io/en/latest/userguide/
+unittest.html>`__ docs to write `PyUnit` tests, or `PyTest <http://glusto.
+readthedocs.io/en/latest/userguide/pytest.html>`__ docs to write `PyTest`
+tests, or `Nose <http://glusto.readthedocs.io/en/latest/userguide/
+nosetests.html>`__ docs to write `Nose` tests.
+
+For more information on how to write test cases, refer `developing-guide
+<https://github.com/gluster/glusto-tests/blob/master/docs/userguide/developer
+-guide.rst>`__.
+
+Validating `PEP 8` rules after adding new code
+**********************************************
+
+Refer `PEP 8 -- Style Guide for Python Code <https://www.python.org/dev/peps/
+pep-0008/>`__ for more information on `PEP 8` rules.
+
+* Run `PEP 8` checks for all files
+
+ .. code-block::
+
+ $ tox -e pep8
+
+* Run `PEP 8` check for single file
+
+ .. code-block::
+
+ $ tox -e pep8 <absolute_or_relative_file_path>
+
+ For Example:
+
+ .. code-block::
+
+ $ tox -e pep8 tests/functional/common/test_heketi_restart.py
+
+Logging
+*******
+
+Log `file name` and log `level` can be passed as argument to `glusto` command
+while running the `glusto-tests`.
+
+For example:
+
+ .. code-block::
+
+ $ tox -e functional -- glusto -c 'config.yml' \
+ -l /tmp/glustotests-ocp.log --log-level DEBUG \
+ --pytest='-v -x tests -m ocp'
+
+One can configure log files, log levels in the test cases as well. For details
+on how to use `glusto` framework for configuring logs in tests, refer `docs
+<http://glusto.readthedocs.io/en/latest/userguide/loggable.html>`__
+
+Default log location is `/tmp/glustomain.log`
+
+.. Note::
+
+ When using `glusto` via the `Python Interactive Interpreter`, the default
+ log location is `/tmp/glustomain.log`