Merge pull request #495 from sjcorbett/fix/githubobject-repr

Encode GithubObject repr values in utf-8
This commit is contained in:
Jannis Gebauer
2016-11-30 11:24:57 +01:00
committed by GitHub
4 changed files with 54 additions and 1 deletions
+4 -1
View File
@@ -220,7 +220,10 @@ class GithubObject(object):
else:
items = list(params.items())
for k, v in sorted(items, key=itemgetter(0), reverse=True):
yield '{k}="{v}"'.format(k=k, v=v) if isinstance(v, (str, unicode)) else '{k}={v}'.format(k=k, v=v)
isText = isinstance(v, (str, unicode))
if isText and not atLeastPython3:
v = v.encode('utf-8')
yield '{k}="{v}"'.format(k=k, v=v) if isText else '{k}={v}'.format(k=k, v=v)
return '{class_name}({params})'.format(
class_name=self.__class__.__name__,
params=", ".join(list(format_params(params)))
+1
View File
@@ -93,3 +93,4 @@ from Issue174 import *
from Issue214 import *
from Issue216 import *
from Issue278 import *
from Issue494 import *
+38
View File
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
# ########################## Copyrights and license ############################
# #
# Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> #
# Copyright 2016 Sam Corbett <sjcorbett@apache.org> #
# #
# This file is part of PyGithub. #
# http://pygithub.github.io/PyGithub/v1/index.html #
# #
# PyGithub is free software: you can redistribute it and/or modify it under #
# the terms of the GNU Lesser General Public License as published by the Free #
# Software Foundation, either version 3 of the License, or (at your option) #
# any later version. #
# #
# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
# details. #
# #
# You should have received a copy of the GNU Lesser General Public License #
# along with PyGithub. If not, see <http://www.gnu.org/licenses/>. #
# #
# ##############################################################################
import Framework
class Issue494(Framework.TestCase):
def setUp(self):
Framework.TestCase.setUp(self)
self.repo = self.g.get_repo("apache/brooklyn-server")
self.pull = self.repo.get_pull(465)
def testRepr(self):
expected = 'PullRequest(title="Change SetHostnameCustomizer to check if ' \
'/etc/sysconfig/network exist…", number=465)'
self.assertEqual(self.pull.__repr__(), expected)
File diff suppressed because one or more lines are too long