Statistics
| Branch: | Tag: | Revision:

root / test / qa.qa_config_unittest.py @ ebfb2f46

History | View | Annotate | Download (3.2 kB)

1 a0c3e726 Michael Hanselmann
#!/usr/bin/python
2 a0c3e726 Michael Hanselmann
#
3 a0c3e726 Michael Hanselmann
4 a0c3e726 Michael Hanselmann
# Copyright (C) 2012 Google Inc.
5 a0c3e726 Michael Hanselmann
#
6 a0c3e726 Michael Hanselmann
# This program is free software; you can redistribute it and/or modify
7 a0c3e726 Michael Hanselmann
# it under the terms of the GNU General Public License as published by
8 a0c3e726 Michael Hanselmann
# the Free Software Foundation; either version 2 of the License, or
9 a0c3e726 Michael Hanselmann
# (at your option) any later version.
10 a0c3e726 Michael Hanselmann
#
11 a0c3e726 Michael Hanselmann
# This program is distributed in the hope that it will be useful, but
12 a0c3e726 Michael Hanselmann
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 a0c3e726 Michael Hanselmann
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 a0c3e726 Michael Hanselmann
# General Public License for more details.
15 a0c3e726 Michael Hanselmann
#
16 a0c3e726 Michael Hanselmann
# You should have received a copy of the GNU General Public License
17 a0c3e726 Michael Hanselmann
# along with this program; if not, write to the Free Software
18 a0c3e726 Michael Hanselmann
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 a0c3e726 Michael Hanselmann
# 02110-1301, USA.
20 a0c3e726 Michael Hanselmann
21 a0c3e726 Michael Hanselmann
22 a0c3e726 Michael Hanselmann
"""Script for testing qa.qa_config"""
23 a0c3e726 Michael Hanselmann
24 a0c3e726 Michael Hanselmann
import unittest
25 a0c3e726 Michael Hanselmann
26 a0c3e726 Michael Hanselmann
from qa import qa_config
27 a0c3e726 Michael Hanselmann
28 a0c3e726 Michael Hanselmann
import testutils
29 a0c3e726 Michael Hanselmann
30 a0c3e726 Michael Hanselmann
31 a0c3e726 Michael Hanselmann
class TestTestEnabled(unittest.TestCase):
32 a0c3e726 Michael Hanselmann
  def testSimple(self):
33 a0c3e726 Michael Hanselmann
    for name in ["test", ["foobar"], ["a", "b"]]:
34 a0c3e726 Michael Hanselmann
      self.assertTrue(qa_config.TestEnabled(name, _cfg={}))
35 a0c3e726 Michael Hanselmann
36 a0c3e726 Michael Hanselmann
    for default in [False, True]:
37 a0c3e726 Michael Hanselmann
      self.assertFalse(qa_config.TestEnabled("foo", _cfg={
38 a0c3e726 Michael Hanselmann
        "tests": {
39 a0c3e726 Michael Hanselmann
          "default": default,
40 a0c3e726 Michael Hanselmann
          "foo": False,
41 a0c3e726 Michael Hanselmann
          },
42 a0c3e726 Michael Hanselmann
        }))
43 a0c3e726 Michael Hanselmann
44 a0c3e726 Michael Hanselmann
      self.assertTrue(qa_config.TestEnabled("bar", _cfg={
45 a0c3e726 Michael Hanselmann
        "tests": {
46 a0c3e726 Michael Hanselmann
          "default": default,
47 a0c3e726 Michael Hanselmann
          "bar": True,
48 a0c3e726 Michael Hanselmann
          },
49 a0c3e726 Michael Hanselmann
        }))
50 a0c3e726 Michael Hanselmann
51 a0c3e726 Michael Hanselmann
  def testEitherWithDefault(self):
52 a0c3e726 Michael Hanselmann
    names = qa_config.Either("one")
53 a0c3e726 Michael Hanselmann
54 a0c3e726 Michael Hanselmann
    self.assertTrue(qa_config.TestEnabled(names, _cfg={
55 a0c3e726 Michael Hanselmann
      "tests": {
56 a0c3e726 Michael Hanselmann
        "default": True,
57 a0c3e726 Michael Hanselmann
        },
58 a0c3e726 Michael Hanselmann
      }))
59 a0c3e726 Michael Hanselmann
60 a0c3e726 Michael Hanselmann
    self.assertFalse(qa_config.TestEnabled(names, _cfg={
61 a0c3e726 Michael Hanselmann
      "tests": {
62 a0c3e726 Michael Hanselmann
        "default": False,
63 a0c3e726 Michael Hanselmann
        },
64 a0c3e726 Michael Hanselmann
      }))
65 a0c3e726 Michael Hanselmann
66 a0c3e726 Michael Hanselmann
  def testEither(self):
67 a0c3e726 Michael Hanselmann
    names = [qa_config.Either(["one", "two"]),
68 a0c3e726 Michael Hanselmann
             qa_config.Either("foo"),
69 a0c3e726 Michael Hanselmann
             "hello",
70 a0c3e726 Michael Hanselmann
             ["bar", "baz"]]
71 a0c3e726 Michael Hanselmann
72 a0c3e726 Michael Hanselmann
    self.assertTrue(qa_config.TestEnabled(names, _cfg={
73 a0c3e726 Michael Hanselmann
      "tests": {
74 a0c3e726 Michael Hanselmann
        "default": True,
75 a0c3e726 Michael Hanselmann
        },
76 a0c3e726 Michael Hanselmann
      }))
77 a0c3e726 Michael Hanselmann
78 a0c3e726 Michael Hanselmann
    self.assertFalse(qa_config.TestEnabled(names, _cfg={
79 a0c3e726 Michael Hanselmann
      "tests": {
80 a0c3e726 Michael Hanselmann
        "default": False,
81 a0c3e726 Michael Hanselmann
        },
82 a0c3e726 Michael Hanselmann
      }))
83 a0c3e726 Michael Hanselmann
84 a0c3e726 Michael Hanselmann
    for name in ["foo", "bar", "baz", "hello"]:
85 a0c3e726 Michael Hanselmann
      self.assertFalse(qa_config.TestEnabled(names, _cfg={
86 a0c3e726 Michael Hanselmann
        "tests": {
87 a0c3e726 Michael Hanselmann
          "default": True,
88 a0c3e726 Michael Hanselmann
          name: False,
89 a0c3e726 Michael Hanselmann
          },
90 a0c3e726 Michael Hanselmann
        }))
91 a0c3e726 Michael Hanselmann
92 a0c3e726 Michael Hanselmann
    self.assertFalse(qa_config.TestEnabled(names, _cfg={
93 a0c3e726 Michael Hanselmann
      "tests": {
94 a0c3e726 Michael Hanselmann
        "default": True,
95 a0c3e726 Michael Hanselmann
        "one": False,
96 a0c3e726 Michael Hanselmann
        "two": False,
97 a0c3e726 Michael Hanselmann
        },
98 a0c3e726 Michael Hanselmann
      }))
99 a0c3e726 Michael Hanselmann
100 a0c3e726 Michael Hanselmann
    self.assertTrue(qa_config.TestEnabled(names, _cfg={
101 a0c3e726 Michael Hanselmann
      "tests": {
102 a0c3e726 Michael Hanselmann
        "default": True,
103 a0c3e726 Michael Hanselmann
        "one": False,
104 a0c3e726 Michael Hanselmann
        "two": True,
105 a0c3e726 Michael Hanselmann
        },
106 a0c3e726 Michael Hanselmann
      }))
107 a0c3e726 Michael Hanselmann
108 a0c3e726 Michael Hanselmann
    self.assertFalse(qa_config.TestEnabled(names, _cfg={
109 a0c3e726 Michael Hanselmann
      "tests": {
110 a0c3e726 Michael Hanselmann
        "default": True,
111 a0c3e726 Michael Hanselmann
        "one": True,
112 a0c3e726 Michael Hanselmann
        "two": True,
113 a0c3e726 Michael Hanselmann
        "foo": False,
114 a0c3e726 Michael Hanselmann
        },
115 a0c3e726 Michael Hanselmann
      }))
116 a0c3e726 Michael Hanselmann
117 a0c3e726 Michael Hanselmann
  def testEitherNestedWithAnd(self):
118 a0c3e726 Michael Hanselmann
    names = qa_config.Either([["one", "two"], "foo"])
119 a0c3e726 Michael Hanselmann
120 a0c3e726 Michael Hanselmann
    self.assertTrue(qa_config.TestEnabled(names, _cfg={
121 a0c3e726 Michael Hanselmann
      "tests": {
122 a0c3e726 Michael Hanselmann
        "default": True,
123 a0c3e726 Michael Hanselmann
        },
124 a0c3e726 Michael Hanselmann
      }))
125 a0c3e726 Michael Hanselmann
126 a0c3e726 Michael Hanselmann
    for name in ["one", "two"]:
127 a0c3e726 Michael Hanselmann
      self.assertFalse(qa_config.TestEnabled(names, _cfg={
128 a0c3e726 Michael Hanselmann
        "tests": {
129 a0c3e726 Michael Hanselmann
          "default": True,
130 a0c3e726 Michael Hanselmann
          "foo": False,
131 a0c3e726 Michael Hanselmann
          name: False,
132 a0c3e726 Michael Hanselmann
          },
133 a0c3e726 Michael Hanselmann
        }))
134 a0c3e726 Michael Hanselmann
135 a0c3e726 Michael Hanselmann
136 a0c3e726 Michael Hanselmann
if __name__ == "__main__":
137 a0c3e726 Michael Hanselmann
  testutils.GanetiTestProgram()