From 8036c836305f9770d6b242ccd504b543476058ff Mon Sep 17 00:00:00 2001 From: Samuele Pedroni Date: Sat, 21 Feb 2004 21:03:30 +0000 Subject: [PATCH] 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 15a5c65e1a3..cb93b0d838a 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 f85baf8e4d8..284dbb2143a 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -86,6 +86,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()