Ticket #289: director_except_test.patch

File director_except_test.patch, 2.8 KB (added by Richard Boulton, 16 years 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)