This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2013年04月12日 00:36 by Robert.Tasarz, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| os_environ_keyerror.patch | vstinner, 2013年04月12日 08:43 | review | ||
| os_environb_raise_from_none.patch | vstinner, 2013年08月23日 15:12 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg186604 - (view) | Author: Robert Tasarz (Robert.Tasarz) | Date: 2013年04月12日 00:36 | |
Minimal example: >>> import os >>> somekey = 'random' >>> try: ... os.environ[somekey] ... except KeyError as e: ... print(repr(e)) ... somekey == e.args[0] ... KeyError(b'random',) False Tested in Python 3.3.1 on Debian |
|||
| msg186612 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2013年04月12日 06:23 | |
Well, it is not that it is converting it in the exception, it is that it is converting it in order to do the lookup. It is an interesting question whether or not its value in the exception should be considered a bug. |
|||
| msg186613 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年04月12日 08:43 | |
"It is an interesting question whether or not its value in the exception should be considered a bug." I consider it as a bug because it is very surprising to have a different key on the error. Attached patch fixes the issue. |
|||
| msg186620 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2013年04月12日 13:03 | |
Sounds fine to me. Is there a reason you are not using 'with assertRaises' in the test? |
|||
| msg186626 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年04月12日 13:36 | |
> Is there a reason you are not using 'with assertRaises' in the test? The test is not testing the exception class, but the first argument of the exception. How do you test that using assertRaises()? Especially to check "err.args[0] is missing". |
|||
| msg186634 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2013年04月12日 14:09 | |
with self.assertRaises(KeyError) as cm: os.environ[missing] self.assertEqual(cm.excecption.args[0], missing) (I don't know why assertRaises returns itself rather than just returning the exception in the with, but that's the API). |
|||
| msg186923 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2013年04月14日 14:44 | |
New changeset 72df981e83d3 by Victor Stinner in branch '3.3': Close #17702: os.environ now raises KeyError with the original environment http://hg.python.org/cpython/rev/72df981e83d3 New changeset ea54559a4442 by Victor Stinner in branch 'default': (Merge 3.3) Close #17702: os.environ now raises KeyError with the original http://hg.python.org/cpython/rev/ea54559a4442 New changeset b0c002fa4335 by Victor Stinner in branch '3.3': Issue #17702: use assertRaises() for the unit test http://hg.python.org/cpython/rev/b0c002fa4335 New changeset cc6c5b5ec4f2 by Victor Stinner in branch 'default': (Merge 3.3) Issue #17702: use assertRaises() for the unit test http://hg.python.org/cpython/rev/cc6c5b5ec4f2 |
|||
| msg195973 - (view) | Author: Adam Bartoš (Drekin) * | Date: 2013年08月23日 14:20 | |
This patch introduces a bit ugly traceback. Shouldn't there be "raise from None" or "raise from previous_exc" instead of simple raise? |
|||
| msg195980 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年08月23日 15:12 | |
"This patch introduces a bit ugly traceback. Shouldn't there be "raise from None" or "raise from previous_exc" instead of simple raise?" Oh, I see. >>> os.environb[b'10'] Traceback (most recent call last): File "/home/vstinner/prog/python/default/Lib/os.py", line 648, in __getitem__ value = self._data[self.encodekey(key)] KeyError: b'10' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/vstinner/prog/python/default/Lib/os.py", line 651, in __getitem__ raise KeyError(key) KeyError: b'10' Attached patch adds "from None". |
|||
| msg195981 - (view) | Author: Adam Bartoš (Drekin) * | Date: 2013年08月23日 15:32 | |
It's also in __delitem__. |
|||
| msg195987 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2013年08月23日 17:24 | |
New changeset 26c049dc1a4a by Victor Stinner in branch '3.3': Close #17702: On error, os.environb now removes suppress the except context http://hg.python.org/cpython/rev/26c049dc1a4a New changeset 01f33959ddf6 by Victor Stinner in branch 'default': (Merge 3.3) Close #17702: On error, os.environb now removes suppress the except http://hg.python.org/cpython/rev/01f33959ddf6 |
|||
| msg195990 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年08月23日 17:27 | |
> This patch introduces a bit ugly traceback. It is now fixed, thanks for the report! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:44 | admin | set | github: 61902 |
| 2013年08月23日 17:27:48 | vstinner | set | messages: + msg195990 |
| 2013年08月23日 17:24:48 | python-dev | set | status: open -> closed resolution: fixed messages: + msg195987 |
| 2013年08月23日 15:32:10 | Drekin | set | messages: + msg195981 |
| 2013年08月23日 15:12:35 | vstinner | set | status: closed -> open files: + os_environb_raise_from_none.patch resolution: fixed -> (no value) messages: + msg195980 |
| 2013年08月23日 14:20:30 | Drekin | set | nosy:
+ Drekin messages: + msg195973 |
| 2013年04月14日 14:44:00 | python-dev | set | status: open -> closed nosy: + python-dev messages: + msg186923 resolution: fixed stage: resolved |
| 2013年04月12日 14:09:38 | r.david.murray | set | messages: + msg186634 |
| 2013年04月12日 13:36:23 | vstinner | set | messages: + msg186626 |
| 2013年04月12日 13:03:42 | r.david.murray | set | messages: + msg186620 |
| 2013年04月12日 08:43:35 | vstinner | set | files:
+ os_environ_keyerror.patch keywords: + patch messages: + msg186613 versions: + Python 3.4 |
| 2013年04月12日 06:23:07 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg186612 |
| 2013年04月12日 01:30:05 | ned.deily | set | nosy:
+ vstinner |
| 2013年04月12日 00:37:32 | Robert.Tasarz | set | type: behavior |
| 2013年04月12日 00:36:11 | Robert.Tasarz | create | |