Ticket #17649: ticket17649.patch

File ticket17649.patch, 1.5 KB (added by chomik, 13 years ago)

suggested solution

  • django/contrib/auth/management/__init__.py

    diff --git a/django/contrib/auth/management/__init__.py b/django/contrib/auth/management/__init__.py
    index 78a51cf..8eb0335 100644
    a b def get_system_username():  
    8282        username could not be determined.
    8383    """
    8484    try:
    85         return getpass.getuser().decode(locale.getdefaultlocale()[1])
     85        system_locale = locale.getdefaultlocale()[1]
     86        if system_locale:
     87            return getpass.getuser().decode(system_locale)
     88        else:
     89            return getpass.getuser().decode()
    8690    except (ImportError, KeyError, UnicodeDecodeError):
    8791        # KeyError will be raised by os.getpwuid() (called by getuser())
    8892        # if there is no corresponding entry in the /etc/passwd file
  • django/contrib/auth/tests/management.py

    diff --git a/django/contrib/auth/tests/management.py b/django/contrib/auth/tests/management.py
    index 0af6873..a388788 100644
    a b class GetDefaultUsernameTestCase(TestCase):  
    2525        # 'Julia' with accented 'u':
    2626        management.get_system_username = lambda: u'J\xfalia'
    2727        self.assertEqual(management.get_default_username(), 'julia')
     28
     29    def test_locale_empty(self):
     30        # Test for emty locale.
     31        import locale
     32        import getpass
     33        locale.getdefaultlocale = lambda: (None,None)
     34        getpass.getuser = lambda: 'leon'
     35        self.assertEqual(management.get_system_username(), 'leon')
Back to Top