# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from rally.verification.tempest import diff from tests.unit import test class DiffTestCase(test.TestCase): def test_main(self): results1 = {'test.NONE': {'name': 'test.NONE', 'output': 'test.NONE', 'status': 'SKIPPED', 'time': 0.000}, 'test.zerofive': {'name': 'test.zerofive', 'output': 'test.zerofive', 'status': 'FAILED', 'time': 0.05}, 'test.one': {'name': 'test.one', 'output': 'test.one', 'status': 'OK', 'time': 0.111}, 'test.two': {'name': 'test.two', 'output': 'test.two', 'status': 'OK', 'time': 0.222}, 'test.three': {'name': 'test.three', 'output': 'test.three', 'status': 'FAILED', 'time': 0.333}, 'test.four': {'name': 'test.four', 'output': 'test.four', 'status': 'OK', 'time': 0.444}, 'test.five': {'name': 'test.five', 'output': 'test.five', 'status': 'OK', 'time': 0.555} } results2 = {'test.one': {'name': 'test.one', 'output': 'test.one', 'status': 'FAIL', 'time': 0.1111}, 'test.two': {'name': 'test.two', 'output': 'test.two', 'status': 'OK', 'time': 0.222}, 'test.three': {'name': 'test.three', 'output': 'test.three', 'status': 'OK', 'time': 0.3333}, 'test.four': {'name': 'test.four', 'output': 'test.four', 'status': 'FAIL', 'time': 0.4444}, 'test.five': {'name': 'test.five', 'output': 'test.five', 'status': 'OK', 'time': 0.555}, 'test.six': {'name': 'test.six', 'output': 'test.six', 'status': 'OK', 'time': 0.666}, 'test.seven': {'name': 'test.seven', 'output': 'test.seven', 'status': 'OK', 'time': 0.777} } diff_ = diff.Diff(results1, results2, 0) assert len(diff_.diffs) == 10 assert len([test for test in diff_.diffs if test['type'] == 'removed_test']) == 2 assert len([test for test in diff_.diffs if test['type'] == 'new_test']) == 2 assert len([test for test in diff_.diffs if test['type'] == 'value_changed']) == 6 assert diff_.to_csv() != '' assert diff_.to_html() != '' assert diff_.to_json() != ''