1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # -*- coding: utf-8 -*-
- """
- plan.testsuite.commands
- ~~~~~~~~~~~~~~~~~~~~~~~
- Tests the command line tools for Plan.
- :copyright: (c) 2014 by Shipeng Feng.
- :license: BSD, see LICENSE for more details.
- """
- import unittest
- import click
- from click.testing import CliRunner
- from plan.commands import Echo
- from plan.testsuite import BaseTestCase
- class EchoTestRunner(object):
- def __init__(self):
- self.runner = CliRunner()
- def invoke(self, echo_method, message):
- @click.command()
- @click.argument('message')
- def command(message):
- echo_method(message)
- return self.runner.invoke(command, [message])
- class EchoTestCase(BaseTestCase):
- def setup(self):
- self.runner = EchoTestRunner()
- def teardown(self):
- self.runner = None
- def test_echo(self):
- result = self.runner.invoke(Echo.echo, 'echo')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, 'echo\n')
- def test_secho(self):
- result = self.runner.invoke(Echo.secho, 'secho')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, 'secho\n')
- def test_message(self):
- result = self.runner.invoke(Echo.message, 'message')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[message] message\n')
- def test_write(self):
- result = self.runner.invoke(Echo.write, 'write')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[write] write\n')
- def test_fail(self):
- result = self.runner.invoke(Echo.fail, 'fail')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[fail] fail\n')
- def test_add(self):
- result = self.runner.invoke(Echo.add, 'add')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[add] add\n')
- def test_done_with_message(self):
- result = self.runner.invoke(Echo.done, 'done')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[done] done\n')
- def test_done_without_message(self):
- result = self.runner.invoke(Echo.done, '')
- self.assert_true(result.exit_code == 0)
- self.assert_equal(result.output, '[done]!\n')
- def suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(EchoTestCase))
- return suite
|