From f20b3b26f6e0631b3ef799a8170da7bf6147dcec Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 23 Apr 2011 15:02:40 +0200 Subject: [PATCH] Add platform and python information to startup logging (fixes #73) --- mopidy/__init__.py | 19 ++++++++++++++----- mopidy/core.py | 2 +- mopidy/utils/log.py | 6 ++++-- tests/version_test.py | 12 +++++++++++- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/mopidy/__init__.py b/mopidy/__init__.py index e9ced3ae..1fbf99c8 100644 --- a/mopidy/__init__.py +++ b/mopidy/__init__.py @@ -1,3 +1,4 @@ +import platform import sys if not (2, 6) <= sys.version_info < (3,): sys.exit(u'Mopidy requires Python >= 2.6, < 3') @@ -6,6 +7,12 @@ from subprocess import PIPE, Popen VERSION = (0, 4, 0) +def get_version(): + try: + return get_git_version() + except EnvironmentError: + return get_plain_version() + def get_git_version(): process = Popen(['git', 'describe'], stdout=PIPE, stderr=PIPE) if process.wait() != 0: @@ -18,11 +25,13 @@ def get_git_version(): def get_plain_version(): return '.'.join(map(str, VERSION)) -def get_version(): - try: - return get_git_version() - except EnvironmentError: - return get_plain_version() +def get_platform(): + return platform.platform() + +def get_python(): + implementation = platform.python_implementation() + version = platform.python_version() + return u' '.join([implementation, version]) class MopidyException(Exception): def __init__(self, message, *args, **kwargs): diff --git a/mopidy/core.py b/mopidy/core.py index a1c6b361..093f783d 100644 --- a/mopidy/core.py +++ b/mopidy/core.py @@ -29,7 +29,7 @@ def main(): ActorRegistry.stop_all() def parse_options(): - parser = optparse.OptionParser(version='Mopidy %s' % get_version()) + parser = optparse.OptionParser(version=u'Mopidy %s' % get_version()) parser.add_option('-q', '--quiet', action='store_const', const=0, dest='verbosity_level', help='less output (warning level)') diff --git a/mopidy/utils/log.py b/mopidy/utils/log.py index c74ff5ea..531b68b6 100644 --- a/mopidy/utils/log.py +++ b/mopidy/utils/log.py @@ -1,7 +1,8 @@ import logging import logging.handlers +import platform -from mopidy import get_version, settings +from mopidy import get_version, get_platform, get_python, settings def setup_logging(verbosity_level, save_debug_log): setup_root_logger() @@ -9,7 +10,8 @@ def setup_logging(verbosity_level, save_debug_log): if save_debug_log: setup_debug_logging_to_file() logger = logging.getLogger('mopidy.utils.log') - logger.info(u'-- Starting Mopidy %s --', get_version()) + logger.info(u'Starting Mopidy %s on %s %s', + get_version(), get_platform(), get_python()) def setup_root_logger(): root = logging.getLogger('') diff --git a/tests/version_test.py b/tests/version_test.py index f1f86b59..7f204283 100644 --- a/tests/version_test.py +++ b/tests/version_test.py @@ -1,7 +1,8 @@ from distutils.version import StrictVersion as SV import unittest +import platform -from mopidy import get_plain_version +from mopidy import get_version, get_plain_version, get_platform, get_python class VersionTest(unittest.TestCase): def test_current_version_is_parsable_as_a_strict_version_number(self): @@ -18,3 +19,12 @@ class VersionTest(unittest.TestCase): self.assert_(SV('0.3.0') < SV('0.3.1')) self.assert_(SV('0.3.1') < SV(get_plain_version())) self.assert_(SV(get_plain_version()) < SV('0.4.1')) + + def test_get_platform_contains_platform(self): + self.assert_(platform.platform() in get_platform()) + + def test_get_python_contains_python_implementation(self): + self.assert_(platform.python_implementation() in get_python()) + + def test_get_python_contains_python_version(self): + self.assert_(platform.python_version() in get_python())