packstack/tests/installer/test_sequences.py
Christian Berendt c532db1461 Enable several PEP8 checks
* E122 continuation line missing indentation or outdented
* E126 continuation line over-indented for hanging indent
* E127 continuation line over-indented for visual indent
* E128 continuation line under-indented for visual indent
* E131 continuation line unaligned for hanging indent
* E303 too many blank lines
* W601 .has_key() is deprecated, use 'in'
* H234 assertEquals is deprecated, use assertEqual
* H401 docstring should not start with a space
* H402 one line docstring needs punctuation.

Change-Id: I1c264dba19bfe7cb9173e8999429827bd026b930
2015-01-21 19:11:49 +01:00

97 lines
3.2 KiB
Python

# -*- coding: utf-8 -*-
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2013, Red Hat, Inc.
#
# 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.
import sys
import StringIO
from unittest import TestCase
from packstack.installer import utils
from packstack.installer.core.sequences import *
from ..test_base import PackstackTestCaseMixin
class StepTestCase(PackstackTestCaseMixin, TestCase):
def setUp(self):
super(StepTestCase, self).setUp()
self._stdout = sys.stdout
sys.stdout = StringIO.StringIO()
def tearDown(self):
super(StepTestCase, self).tearDown()
sys.stdout = self._stdout
def test_run(self):
"""
Test packstack.instaler.core.sequences.Step run.
"""
def func(config, messages):
if 'test' not in config:
raise AssertionError('Missing config value.')
step = Step('test', func, title='Running test')
step.run(config={'test': 'test'})
contents = sys.stdout.getvalue()
state = '[ %s ]\n' % utils.color_text('DONE', 'green')
if not contents.startswith('Running test') or \
not contents.endswith(state):
raise AssertionError('Step run test failed: %s' % contents)
class SequenceTestCase(PackstackTestCaseMixin, TestCase):
def setUp(self):
super(SequenceTestCase, self).setUp()
self._stdout = sys.stdout
sys.stdout = StringIO.StringIO()
self.steps = [{'name': '1', 'function': lambda x, y: True,
'title': 'Step 1'},
{'name': '2', 'function': lambda x, y: True,
'title': 'Step 2'},
{'name': '3', 'function': lambda x, y: True,
'title': 'Step 3'}]
self.seq = Sequence('test', self.steps, condition='test',
cond_match='test')
def tearDown(self):
super(SequenceTestCase, self).tearDown()
sys.stdout = self._stdout
def test_run(self):
"""
Test packstack.instaler.core.sequences.Sequence run.
"""
self.seq.run()
contents = sys.stdout.getvalue()
self.assertEqual(contents, '')
self.seq.run(config={'test': 'test'}, step='2')
contents = sys.stdout.getvalue()
assert contents.startswith('Step 2')
output = []
self.steps.insert(0, {'title': 'Step 2'})
for i in self.steps:
output.append('%s\n' % utils.state_message(i['title'],
'DONE', 'green'))
self.seq.run(config={'test': 'test'})
contents = sys.stdout.getvalue()
self.assertEqual(contents, ''.join(output))