decorators_test.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env python
  2. import os
  3. import sys
  4. sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", ".."))
  5. import unittest
  6. from ropemode.decorators import Logger
  7. class LoggerTests(unittest.TestCase):
  8. def test_Logger_called_with_no_args_doesnt_raise_TypeError(self):
  9. """
  10. When not initialized with a message display method, Logger
  11. prints the message to stdout without raising an exception.
  12. """
  13. logger = Logger()
  14. try:
  15. logger("a message")
  16. except TypeError:
  17. self.fail("logger raised TypeError unexpectedly")
  18. class LoggerMessageHandlerTests(unittest.TestCase):
  19. def setUp(self):
  20. self.message = ""
  21. self.logger = Logger()
  22. self.logger.message = self._echo
  23. def _echo(self, message):
  24. self.message += message
  25. def test_message_handler_with_no_short_message(self):
  26. """Test that message handler is called"""
  27. self.logger("a message")
  28. self.assertEqual(self.message, "a message")
  29. def test_only_short_True(self):
  30. """Test that only_short=True prints only the short message"""
  31. self.logger.only_short = True
  32. self.logger("a long message", "a short message")
  33. self.assertEqual(self.message, "a short message")
  34. def test_only_short_False(self):
  35. """Test that only_short=False prints both messages"""
  36. self.logger.only_short = False
  37. self.logger("a long message", "a short message")
  38. self.assertEqual(self.message, "a long messagea short message")