diff options
Diffstat (limited to 'tests/distaf/tests_d/examples')
| -rw-r--r-- | tests/distaf/tests_d/examples/__init__.py | 0 | ||||
| -rw-r--r-- | tests/distaf/tests_d/examples/test_basic_gluster_tests.py | 49 | ||||
| -rw-r--r-- | tests/distaf/tests_d/examples/test_docstring.py | 130 | ||||
| -rw-r--r-- | tests/distaf/tests_d/examples/test_passfail.py | 97 |
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 |
