]> granicus.if.org Git - python/commitdiff
adding passing test. testing for g(*Nothing()) where Nothing is a user-defined iterator.
authorSamuele Pedroni <pedronis@openend.se>
Sat, 21 Feb 2004 21:03:30 +0000 (21:03 +0000)
committerSamuele Pedroni <pedronis@openend.se>
Sat, 21 Feb 2004 21:03:30 +0000 (21:03 +0000)
Lib/test/output/test_extcall
Lib/test/test_extcall.py

index 15a5c65e1a37ad87e0c1d919f24978b4a9500299..cb93b0d838a5d227f81100b320e4b24c1d7d1dad 100644 (file)
@@ -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}
index f85baf8e4d8b2a2f8279ebe5aa5aa70efaf8135c..284dbb2143a0e708a50127514eeb43af21417ac8 100644 (file)
@@ -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()