blob: 1d5ed43928624ed4bc360cb1f224a9f0bd66168a [file] [log] [blame]
Marc Koderer6ee82dc2014-02-17 10:26:29 +01001# Copyright 2014 Deutsche Telekom AG
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16import copy
17
18import tempest.common.generator.base_generator as base
19import tempest.common.generator.valid_generator as valid
20from tempest.openstack.common import log as logging
21
22LOG = logging.getLogger(__name__)
23
24
25class NegativeTestGenerator(base.BasicGeneratorSet):
26 @base.generator_type("string")
27 @base.simple_generator
28 def gen_int(self, _):
29 return 4
30
31 @base.generator_type("integer")
32 @base.simple_generator
33 def gen_string(self, _):
34 return "XXXXXX"
35
36 @base.generator_type("integer", "string")
37 def gen_none(self, schema):
38 # Note(mkoderer): it's not using the decorator otherwise it'd be
39 # filtered
40 expected_result = base._check_for_expected_result('gen_none', schema)
41 return ('gen_none', None, expected_result)
42
43 @base.generator_type("string")
44 @base.simple_generator
45 def gen_str_min_length(self, schema):
46 min_length = schema.get("minLength", 0)
47 if min_length > 0:
48 return "x" * (min_length - 1)
49
Marc Kodererf07f5d12014-09-01 09:47:23 +020050 @base.generator_type("string", needed_property="maxLength")
Marc Koderer6ee82dc2014-02-17 10:26:29 +010051 @base.simple_generator
52 def gen_str_max_length(self, schema):
53 max_length = schema.get("maxLength", -1)
Marc Kodererf07f5d12014-09-01 09:47:23 +020054 return "x" * (max_length + 1)
Marc Koderer6ee82dc2014-02-17 10:26:29 +010055
Marc Kodererf07f5d12014-09-01 09:47:23 +020056 @base.generator_type("integer", needed_property="minimum")
Marc Koderer6ee82dc2014-02-17 10:26:29 +010057 @base.simple_generator
58 def gen_int_min(self, schema):
Marc Kodererf07f5d12014-09-01 09:47:23 +020059 minimum = schema["minimum"]
60 if "exclusiveMinimum" not in schema:
61 minimum -= 1
62 return minimum
Marc Koderer6ee82dc2014-02-17 10:26:29 +010063
Marc Kodererf07f5d12014-09-01 09:47:23 +020064 @base.generator_type("integer", needed_property="maximum")
Marc Koderer6ee82dc2014-02-17 10:26:29 +010065 @base.simple_generator
66 def gen_int_max(self, schema):
Marc Kodererf07f5d12014-09-01 09:47:23 +020067 maximum = schema["maximum"]
68 if "exclusiveMaximum" not in schema:
69 maximum += 1
70 return maximum
Marc Koderer6ee82dc2014-02-17 10:26:29 +010071
Marc Kodererf07f5d12014-09-01 09:47:23 +020072 @base.generator_type("object", needed_property="additionalProperties")
Marc Koderer6ee82dc2014-02-17 10:26:29 +010073 @base.simple_generator
74 def gen_obj_add_attr(self, schema):
75 valid_schema = valid.ValidTestGenerator().generate_valid(schema)
Marc Kodererf07f5d12014-09-01 09:47:23 +020076 new_valid = copy.deepcopy(valid_schema)
77 new_valid["$$$$$$$$$$"] = "xxx"
78 return new_valid