output.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. """
  3. plan.testsuite.output
  4. ~~~~~~~~~~~~~~~~~~~~~
  5. Tests the output for Plan.
  6. :copyright: (c) 2014 by Shipeng Feng.
  7. :license: BSD, see LICENSE for more details.
  8. """
  9. import unittest
  10. from plan.output import Output
  11. from plan.testsuite import BaseTestCase
  12. class OutputTestCase(BaseTestCase):
  13. def test_from_none(self):
  14. output = str(Output())
  15. self.assert_equal(output, '')
  16. def test_from_string(self):
  17. output = str(Output('null'))
  18. self.assert_equal(output, '> /dev/null 2>&1')
  19. output = str(Output('> /tmp/out.log 2> /tmp/error.log'))
  20. self.assert_equal(output, '> /tmp/out.log 2> /tmp/error.log')
  21. def test_from_dict(self):
  22. output = str(Output(dict()))
  23. self.assert_equal(output, '')
  24. output = str(Output(dict(key='value')))
  25. self.assert_equal(output, '> /dev/null 2>&1')
  26. output = str(Output(dict(stdout='/dev/null', stderr='/dev/null')))
  27. self.assert_equal(output, '> /dev/null 2>&1')
  28. output = str(Output(dict(stdout=None, stderr=None)))
  29. self.assert_equal(output, '')
  30. output = str(Output(dict(stdout='/tmp/test_out.log', stderr=None)))
  31. self.assert_equal(output, '>> /tmp/test_out.log')
  32. output = str(Output(dict(stdout='', stderr='/tmp/test_error.log')))
  33. self.assert_equal(output, '2>> /tmp/test_error.log')
  34. output = str(Output(dict(stdout='/t/out.log', stderr='/t/err.log')))
  35. self.assert_equal(output, '>> /t/out.log 2>> /t/err.log')
  36. def test_from_illegal(self):
  37. output = Output(1)
  38. self.assert_raises(TypeError, output.__str__)
  39. def suite():
  40. suite = unittest.TestSuite()
  41. suite.addTest(unittest.makeSuite(OutputTestCase))
  42. return suite