{"action":"created","issue":{"url":"https://api.github.com/repos/google/oauth2client/issues/316","labels_url":"https://api.github.com/repos/google/oauth2client/issues/316/labels{/name}","comments_url":"https://api.github.com/repos/google/oauth2client/issues/316/comments","events_url":"https://api.github.com/repos/google/oauth2client/issues/316/events","html_url":"https://github.com/google/oauth2client/pull/316","id":109372428,"number":316,"title":"Issue #142: CredentialField Python 3 fix","user":{"login":"szopu","id":168152,"avatar_url":"https://avatars.githubusercontent.com/u/168152?v=3","gravatar_id":"","url":"https://api.github.com/users/szopu","html_url":"https://github.com/szopu","followers_url":"https://api.github.com/users/szopu/followers","following_url":"https://api.github.com/users/szopu/following{/other_user}","gists_url":"https://api.github.com/users/szopu/gists{/gist_id}","starred_url":"https://api.github.com/users/szopu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szopu/subscriptions","organizations_url":"https://api.github.com/users/szopu/orgs","repos_url":"https://api.github.com/users/szopu/repos","events_url":"https://api.github.com/users/szopu/events{/privacy}","received_events_url":"https://api.github.com/users/szopu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/google/oauth2client/labels/cla:%20yes","name":"cla: yes","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-10-01T20:01:48Z","updated_at":"2015-10-05T20:14:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/google/oauth2client/pulls/316","html_url":"https://github.com/google/oauth2client/pull/316","diff_url":"https://github.com/google/oauth2client/pull/316.diff","patch_url":"https://github.com/google/oauth2client/pull/316.patch"},"body":"This PR should fix issue #142.\r\n\r\nChanges\r\n* in `oauth2client.django_orm.CredentialsField`:\r\n  * Python 2/3 metaclass support \r\n  * using `get_prep_value` instead of `get_db_prep_value`\r\n  * added `value_to_string` method \r\n  * explicit conversions to text/bytes types in `get_prep_value`, `to_python` (required by Python 3)\r\n* in `test_django_orm` tests:\r\n  * added explicit conversion to bytes so the tests can work on Python 3"},"comment":{"url":"https://api.github.com/repos/google/oauth2client/issues/comments/145654403","html_url":"https://github.com/google/oauth2client/pull/316#issuecomment-145654403","issue_url":"https://api.github.com/repos/google/oauth2client/issues/316","id":145654403,"user":{"login":"dhermes","id":520669,"avatar_url":"https://avatars.githubusercontent.com/u/520669?v=3","gravatar_id":"","url":"https://api.github.com/users/dhermes","html_url":"https://github.com/dhermes","followers_url":"https://api.github.com/users/dhermes/followers","following_url":"https://api.github.com/users/dhermes/following{/other_user}","gists_url":"https://api.github.com/users/dhermes/gists{/gist_id}","starred_url":"https://api.github.com/users/dhermes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhermes/subscriptions","organizations_url":"https://api.github.com/users/dhermes/orgs","repos_url":"https://api.github.com/users/dhermes/repos","events_url":"https://api.github.com/users/dhermes/events{/privacy}","received_events_url":"https://api.github.com/users/dhermes/received_events","type":"User","site_admin":false},"created_at":"2015-10-05T20:14:39Z","updated_at":"2015-10-05T20:14:39Z","body":"I wanted to make sure we don't introduce newly untested code paths. Before this PR, the untested code paths are\r\n\r\n\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L46\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L48\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L53\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L71\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L73\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L78\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L101-L104\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L112-L120\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L131-L140\r\nhttps://github.com/google/oauth2client/blob/af6d3eb8067d5c95fb59af6fb62a192e6c7fa16b/oauth2client/django_orm.py#L145-L146\r\n\r\nNow they are\r\n\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L83\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L85\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L90\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L113-L116\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L124-L132\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L143-L152\r\nhttps://github.com/szopu/oauth2client/blob/b6bb23f0559c48bfb229de09142f01ee612ae3d4/oauth2client/django_orm.py#L157-L158\r\n\r\n"}}