From 20cf51cc6409cae8e75bc3b4dd5469e7e1b05738 Mon Sep 17 00:00:00 2001 From: Samuele Pedroni Date: Sat, 21 Feb 2004 20:58:04 +0000 Subject: adding passing test. testing for g(*Nothing()) where Nothing is a user-defined iterator. --- Lib/test/output/test_extcall | 1 + Lib/test/test_extcall.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/Lib/test/output/test_extcall b/Lib/test/output/test_extcall index ddb2be5..c9d70cc 100644 --- a/Lib/test/output/test_extcall +++ b/Lib/test/output/test_extcall @@ -17,6 +17,7 @@ TypeError: g() takes at least 1 argument (0 given) 1 (2, 3) {} 1 (2, 3, 4, 5) {} 0 (1, 2) {} +0 (1, 2, 3) {} 1 () {'a': 1, 'b': 2, 'c': 3, 'd': 4} {'a': 1, 'b': 2, 'c': 3} {'a': 1, 'b': 2, 'c': 3} diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index 1e80387..21fa281 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -75,6 +75,31 @@ class Nothing: raise IndexError, i g(*Nothing()) +class Nothing: + def __init__(self): + self.c = 0 + def __iter__(self): + return self +try: + g(*Nothing()) +except TypeError, attr: + pass +else: + print "should raise TypeError" + +class Nothing: + def __init__(self): + self.c = 0 + def __iter__(self): + return self + def next(self): + if self.c == 4: + raise StopIteration + c = self.c + self.c += 1 + return c +g(*Nothing()) + # make sure the function call doesn't stomp on the dictionary? d = {'a': 1, 'b': 2, 'c': 3} d2 = d.copy() -- cgit v0.12