summaryrefslogtreecommitdiffstats
path: root/tests/distaf/tests_d/examples/test_docstring.py
blob: a939da8da9e7ae9d23c7f27d7191bc2f606c12bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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 distaflibs.gluster.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