Ticket #289: director_except_test.patch

File director_except_test.patch, 2.8 kB (added by richard, 4 months ago)

Patch to testsuite to test director exception handling

  • xapian-bindings/python/pythontest2.py

     
    992992    del db 
    993993    shutil.rmtree(dbpath) 
    994994 
     995def test_director_exception(): 
     996    """Test handling of an exception raised in a director. 
    995997 
     998    """ 
     999    dbpath = 'db_test_value_stats' 
     1000    db = setup_database() 
     1001    query = xapian.Query('it') 
     1002    enq = xapian.Enquire(db) 
     1003    enq.set_query(query) 
     1004    class TestException(Exception): 
     1005        def __init__(self, a, b): 
     1006            Exception.__init__(self, a + b) 
     1007 
     1008    rset = xapian.RSet() 
     1009    rset.add_document(1) 
     1010    class EDecider(xapian.ExpandDecider): 
     1011        def __call__(self, term): 
     1012            raise TestException("foo", "bar") 
     1013    edecider = EDecider() 
     1014    expect_exception(TestException, "foobar", edecider, "foo") 
     1015    expect_exception(TestException, "foobar", enq.get_eset, 10, rset, edecider) 
     1016 
     1017    class MDecider(xapian.MatchDecider): 
     1018        def __call__(self, doc): 
     1019            raise TestException("foo", "bar") 
     1020    mdecider = MDecider() 
     1021    expect_exception(TestException, "foobar", mdecider, xapian.Document()) 
     1022    expect_exception(TestException, "foobar", enq.get_mset, 0, 10, None, mdecider) 
     1023 
    9961024# Run all tests (ie, callables with names starting "test_"). 
    9971025if not runtests(globals(), sys.argv[1:]): 
    9981026    sys.exit(1) 
  • xapian-bindings/python/pythontest3.py

     
    992992    del db 
    993993    shutil.rmtree(dbpath) 
    994994 
     995def test_director_exception(): 
     996    """Test handling of an exception raised in a director. 
    995997 
     998    """ 
     999    dbpath = 'db_test_value_stats' 
     1000    db = setup_database() 
     1001    query = xapian.Query('it') 
     1002    enq = xapian.Enquire(db) 
     1003    enq.set_query(query) 
     1004    class TestException(Exception): 
     1005        def __init__(self, a, b): 
     1006            Exception.__init__(self, a + b) 
     1007 
     1008    rset = xapian.RSet() 
     1009    rset.add_document(1) 
     1010    class EDecider(xapian.ExpandDecider): 
     1011        def __call__(self, term): 
     1012            raise TestException("foo", "bar") 
     1013    edecider = EDecider() 
     1014    expect_exception(TestException, "foobar", edecider, "foo") 
     1015    expect_exception(TestException, "foobar", enq.get_eset, 10, rset, edecider) 
     1016 
     1017    class MDecider(xapian.MatchDecider): 
     1018        def __call__(self, doc): 
     1019            raise TestException("foo", "bar") 
     1020    mdecider = MDecider() 
     1021    expect_exception(TestException, "foobar", mdecider, xapian.Document()) 
     1022    expect_exception(TestException, "foobar", enq.get_mset, 0, 10, None, mdecider) 
     1023 
    9961024# Run all tests (ie, callables with names starting "test_"). 
    9971025if not runtests(globals(), sys.argv[1:]): 
    9981026    sys.exit(1)