Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf5dc1c4

Browse files
committed
Expand "invalid hash" test to assert normal StopIteration
Returning an explicit value from a generator function causes thatvalue to be bound to the `value` attribute of the StopIterationexception. This is available as the result of "yield from" when itis used as an expression; or by explicitly catching StopIteration,binding the StopIteration exception to a variable, and accessingthe attribute. This feature of generators is rarely used.The `return iter([])` statement in Submodule.iter_items uses thisfeature, causing the resulting StopIteration exception object tohave a `value` attribute that refers to a separate second iteratorthat also yields no values (#1779).From context, this behavior is clearly not the goal; a bare returnstatement should be used here (which has the same effect except forthe `value` attribute of the StopIteration exception). The code hadused a bare return prior to82b131c (#1282), when `return` waschanged to `return iter([])`. That was part of a change that addednumerous type annotations. It looks like it was either a mistake,or possibly an attempt to work around an old bug in a static typechecker.This commit extends the test_iter_items_from_invalid_hash test toassert that the `value` attribute of the StopIteration is its usualdefault value of None. This commit only extends the test; it doesnot fix the bug.
1 parent96fc354 commitf5dc1c4

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

‎test/test_submodule.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,8 +696,9 @@ def test_iter_items_from_nonexistent_hash(self):
696696
deftest_iter_items_from_invalid_hash(self):
697697
"""Check legacy behavaior on BadName (also applies to IOError, i.e. OSError)."""
698698
it=Submodule.iter_items(self.rorepo,"xyz")
699-
withself.assertRaises(StopIteration):
699+
withself.assertRaises(StopIteration)asctx:
700700
next(it)
701+
self.assertIsNone(ctx.exception.value)
701702

702703
@with_rw_repo(k_no_subm_tag,bare=False)
703704
deftest_first_submodule(self,rwrepo):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp