diff options
-rw-r--r-- | Lib/calendar.py | 11 | ||||
-rw-r--r-- | Lib/test/test_calendar.py | 7 |
2 files changed, 14 insertions, 4 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py index 84aa3a4..0301d6b 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -636,7 +636,7 @@ def main(args): parser.add_option( "-e", "--encoding", dest="encoding", default=None, - help="Encoding to use for output" + help="Encoding to use for output." ) parser.add_option( "-t", "--type", @@ -662,10 +662,11 @@ def main(args): if encoding is None: encoding = sys.getdefaultencoding() optdict = dict(encoding=encoding, css=options.css) + write = sys.stdout.buffer.write if len(args) == 1: - print(cal.formatyearpage(datetime.date.today().year, **optdict)) + write(cal.formatyearpage(datetime.date.today().year, **optdict)) elif len(args) == 2: - print(cal.formatyearpage(int(args[1]), **optdict)) + write(cal.formatyearpage(int(args[1]), **optdict)) else: parser.error("incorrect number of arguments") sys.exit(1) @@ -687,9 +688,11 @@ def main(args): else: parser.error("incorrect number of arguments") sys.exit(1) + write = sys.stdout.write if options.encoding: result = result.encode(options.encoding) - print(result) + write = sys.stdout.buffer.write + write(result) if __name__ == "__main__": diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 4bd758b..d3093ac 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -2,6 +2,7 @@ import calendar import unittest from test import support +from test.script_helper import assert_python_ok import time import locale @@ -451,6 +452,11 @@ class LeapdaysTestCase(unittest.TestCase): self.assertEqual(calendar.leapdays(1997,2020), 5) +class ConsoleOutputTestCase(unittest.TestCase): + def test_outputs_bytes(self): + (return_code, stdout, stderr) = assert_python_ok('-m', 'calendar', '--type=html', '2010') + self.assertEqual(stdout[:6], b'<?xml ') + def test_main(): support.run_unittest( OutputTestCase, @@ -460,6 +466,7 @@ def test_main(): TimegmTestCase, MonthRangeTestCase, LeapdaysTestCase, + ConsoleOutputTestCase ) |