summaryrefslogtreecommitdiffstats
path: root/tests/distaf/tests_d/examples
diff options
context:
space:
mode:
Diffstat (limited to 'tests/distaf/tests_d/examples')
-rw-r--r--tests/distaf/tests_d/examples/__init__.py0
-rw-r--r--tests/distaf/tests_d/examples/test_basic_gluster_tests.py49
-rw-r--r--tests/distaf/tests_d/examples/test_docstring.py130
-rw-r--r--tests/distaf/tests_d/examples/test_passfail.py97
4 files changed, 276 insertions, 0 deletions
diff --git a/tests/distaf/tests_d/examples/__init__.py b/tests/distaf/tests_d/examples/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/distaf/tests_d/examples/__init__.py
diff --git a/tests/distaf/tests_d/examples/test_basic_gluster_tests.py b/tests/distaf/tests_d/examples/test_basic_gluster_tests.py
new file mode 100644
index 00000000000..47dfd9372a7
--- /dev/null
+++ b/tests/distaf/tests_d/examples/test_basic_gluster_tests.py
@@ -0,0 +1,49 @@
+# This file is part of DiSTAF
+# Copyright (C) 2015-2016 Red Hat, Inc. <http://www.redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+from distaf.util import tc, testcase
+from distaf.gluster_base_class import GlusterBaseClass
+from distaf.gluster_libs.mount_ops import mount_volume, umount_volume
+from distaf.gluster_libs.volume_ops import (setup_vol, stop_volume,
+ delete_volume)
+
+
+@testcase("gluster_basic_test")
+class gluster_basic_test(GlusterBaseClass):
+ """
+ runs_on_volumes: ALL
+ runs_on_protocol: [ glusterfs, nfs ]
+ reuse_setup: True
+ """
+ def run(self):
+ _rc = True
+ client = self.clients[0]
+ tc.run(self.mnode, "gluster volume status %s" % self.volname)
+ ret, _, _ = mount_volume(self.volname, self.mount_proto, \
+ self.mountpoint, mclient=client)
+ if ret != 0:
+ tc.logger.error("Unable to mount the volume %s in %s" \
+ "Please check the logs" % (self.volname, client))
+ return False
+ ret, _, _ = tc.run(client, "cp -r /etc %s" % self.mountpoint)
+ if ret != 0:
+ tc.logger.error("cp failed in %s. Please check the logs" % client)
+ _rc = False
+ tc.run(client, "rm -rf %s/etc" % self.mountpoint)
+ umount_volume(client, self.mountpoint)
+ return _rc
diff --git a/tests/distaf/tests_d/examples/test_docstring.py b/tests/distaf/tests_d/examples/test_docstring.py
new file mode 100644
index 00000000000..1a73998eb66
--- /dev/null
+++ b/tests/distaf/tests_d/examples/test_docstring.py
@@ -0,0 +1,130 @@
+# This file is part of DiSTAF
+# Copyright (C) 2015-2016 Red Hat, Inc. <http://www.redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+from distaf.util import tc, testcase
+from distaf.gluster_base_class import GlusterBaseClass
+
+
+# An example with both doc and config in docstring
+@testcase("doc_and_config_test")
+class DocAndConfig(GlusterBaseClass):
+ """ Testing docstring configuration options
+ This is an example of a basic distaf test with mixed comment and config
+ Any necessary description doc string text goes here and can include any
+ plain text normally found in a docstring.
+ Distaf specific config yaml can be included using the yaml standard
+ document triple-dash separator below.
+ ---
+ runs_on_volumes: [ distributed ]
+ runs_on_protocol: [ glusterfs ]
+ reuse_setup: False
+ tags:
+ - tag1
+ - tag2
+ - tag3
+ """
+ def run(self):
+ tc.logger.info("Running with doc and config in docstring")
+ config = self.config_data
+ tc.logger.debug("Tag 2 is %s" % config["tags"][1])
+ tag2 = config["tags"][1]
+ if tag2 == "tag2":
+ return True
+
+ return False
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True
+
+
+# An example with only config in docstring
+@testcase("config_only_test")
+class ConfigOnly(GlusterBaseClass):
+ """
+ runs_on_volumes: [ distributed ]
+ runs_on_protocol: [ glusterfs, cifs ]
+ reuse_setup: False
+ tags:
+ - tag1
+ - tag2
+ - tag3
+ """
+ def run(self):
+ tc.logger.info("Running with only config in docstring")
+ config = self.config_data
+ tc.logger.debug("Tag 2 is %s" % config["tags"][1])
+ tag2 = config["tags"][1]
+ if tag2 == "tag2":
+ return True
+
+ return False
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True
+
+
+# An example with only doc in docstring
+@testcase("doc_only_test")
+class DocOnly(GlusterBaseClass):
+ """ Testing docstring configuration options
+ This is an example of a basic distaf test with mixed comment and config
+ Any necessary description doc string text goes here and can include any
+ plain text normally found in a docstring.
+ """
+ def run(self):
+ tc.logger.info("Running with only doc in docstring")
+ return True
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True
+
+
+# An example without a docstring
+@testcase("no_docstring_test")
+class NoDocstring(GlusterBaseClass):
+ def run(self):
+ tc.logger.info("Running with no docstring")
+
+ return True
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True
diff --git a/tests/distaf/tests_d/examples/test_passfail.py b/tests/distaf/tests_d/examples/test_passfail.py
new file mode 100644
index 00000000000..3b14c117190
--- /dev/null
+++ b/tests/distaf/tests_d/examples/test_passfail.py
@@ -0,0 +1,97 @@
+# This file is part of DiSTAF
+# Copyright (C) 2015-2016 Red Hat, Inc. <http://www.redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+from distaf.util import tc, testcase
+from distaf.gluster_base_class import GlusterBaseClass
+
+
+@testcase("this_should_pass")
+class GoingToPass(GlusterBaseClass):
+ """ Testing connectivity and framework pass
+ This is an example of a basic distaf test with mixed comment and config
+ Any necessary description doc string text goes here and can include any
+ plain text normally found in a docstring.
+ Distaf specific config yaml can be included using the yaml standard
+ document triple-dash separator below.
+ ---
+ runs_on_volumes: [ distributed ]
+ runs_on_protocol: [ glusterfs ]
+ reuse_setup: False
+ tags:
+ - tag1
+ - tag2
+ - tag3
+ """
+ def setup(self):
+ return True
+
+ def run(self):
+ config = self.config_data
+ tc.logger.info("Testing connection and command exec")
+ tc.logger.debug("Tag 1 is %s" % config["tags"][0])
+ ret, _, _ = tc.run(self.nodes[0], "hostname")
+ if ret != 0:
+ tc.logger.error("hostname command failed")
+ return False
+ else:
+ return True
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True
+
+
+@testcase("this_should_fail")
+class GoingToFail(GlusterBaseClass):
+ """ Testing connectivity and fail
+ ---
+ runs_on_volumes: [ distributed ]
+ runs_on_protocol: [ glusterfs, cifs ]
+ reuse_setup: False
+ tags:
+ - tag1
+ - tag2
+ - tag3
+ """
+ def setup(self):
+ return True
+
+ def run(self):
+ config = self.config_data
+ tc.logger.info("Testing fail output")
+ tc.logger.debug("Tag 1 is %s" % config["tags"][0])
+ ret, _, _ = tc.run(self.nodes[0], "false")
+ if ret != 0:
+ tc.logger.error("false command failed")
+ return False
+ else:
+ return True
+
+ def setup(self):
+ return True
+
+ def cleanup(self):
+ return True
+
+ def teardown(self):
+ return True