# a few test cases extracted from cpython 2.3.5 test_descr.py # failing for jython2.2a1 def t1(): """ jython says TypeError: __getslice__() takes 3 arguments (2 given) """ l = [1,2,3] try: if not l.__getslice__(0,2) == [1,2]: print "Failure" else: print "Success" except: print "Failure" def t2(): """ jython gives TypeError: __setslice__() takes 4 arguments (3 given) """ try: l = [1,2,3,4] l.__setslice__(1,3,[5,6]) if not l == [1,5,6,4]: print "Failure" else: print "Success" except: print "Failure" def t3(): """ jython gives TypeError instead of ValueError """ try: d = dict([(1,)]) except ValueError: print "Success" pass except: print "Failure, Wrong error type" else: print "Failure, Did not get ValueError" def t4(): """ jython recursively calls __getitem__ until it blows the stack """ class C(dict): def __getitem__(self, key): return self.get(key) d = C() if not (d[1] == None): print "Failure" else: print "Success" def t5(): """ jython doesn't call the user-defined __getslice__() """ class C(list): def __getslice__(self, i, j): return (i, j) l = C() l.append([100, 200]) if not l[0:1] == (0,1): print "Failure" else: print "Success" if __name__ == '__main__': t1() t2() t3() t4() t5()