示例#1
0
def Test(**attrs):
    import sys, os
    import TestSuite, Errors
    
    if not attrs.has_key('script_name'):
        attrs['script_name'] = sys.argv[0]

    if not attrs.has_key('script_args'):
        attrs['script_args'] = sys.argv[1:]

    # Create the TestSuite instance using the arguments to initialize it.
    test_dir = os.path.dirname(attrs['script_name']) or os.getcwd()
    try:
        sys.path.insert(0, test_dir)
        try:
            suite = TestSuite.TestSuite(attrs)
        except Errors.TestSuiteSetupError, msg:
            if attrs.has_key('name'):
                raise SystemExit, \
                      'error in %s test command: %s' % (attrs['name'], msg)
            else:
                raise SystemExit, \
                      'error in test command: %s' % msg

        try:
            ok = suite.parseCommandLine()
        except Errors.TestSuiteArgumentError, msg:
            raise SystemExit, \
                  suite.generateUsage() + '\nerror: %s' % msg
示例#2
0
def realm_test():
    """ Testing apparatus for realm of reckoning """
    suite = TestSuite.TestSuite()
    print "\n-----Testing Character-----"
    test_char = Character('male', 'Rick', 10, 5, 5, 0, [], [0, 0])
    print "character:", test_char
    print "\nTesting set_coords get_coords and get_coord..."
    suite.run_test(test_char.get_coords(), [0, 0], "Test 1:")
    test_char.set_coords([1, 1])
    suite.run_test(test_char.get_coords(), [1, 1], "Test 2:")
    test_char.set_coords([5, 3])
    suite.run_test(test_char.get_coord(0), 5, "Test 3:")
    test_char.set_coords([1, 2])
    suite.run_test(test_char.get_coord(1), 2, "Test 4:")
    print "\nTesting attrib_list (check visually)..."
    suite.run_test(test_char.attrib_list(), None, "Test 5:")
    print "\nTesting add_to_inventory and get_inventory (check visually)..."
    print "Adding 'flint' and 'eggs' to inventory ..."
    suite.run_test(test_char.add_to_inventory('flint'), True, "Test 6:")
    suite.run_test(test_char.add_to_inventory('eggs'), True, "Test 7:")
    suite.run_test(test_char.get_inventory(), ['flint', 'eggs'], "Test 8:")

    print "\n"
    suite.report_results()
示例#3
0
suite = []

import test_AS, test_PLC, test_BS, test_BT, test_MCMC, test_HN, test_FC, test_htt
suite += test_AS.suite  # asymptotic CLs
suite += test_PLC.suite  # profile likelihood
suite += test_BS.suite  # bayes simple
suite += test_BT.suite  # bayes toymc
suite += test_MCMC.suite  # bayes mcmc
suite += test_HN.suite  # hybrid new
suite += test_FC.suite  # feldman cousins
suite += test_htt.suite  # all htt tests

from TestSuite import *

dir = options.name if options.name else options.suite
thisSuite = TestSuite(dir, options, suite)
for cmd in args:
    if cmd == "list":
        thisSuite.listJobs()
    elif cmd == "create":
        print "Creating test suite in directory", dir
        thisSuite.createJobs()
        print "Done."
    elif cmd == "run":
        if options.threads:
            thisSuite.runLocallyASync(threads=options.threads)
        else:
            thisSuite.runLocallySync()
    elif cmd == "submit":
        thisSuite.runBatch(options.queue)
    elif cmd == "report":
示例#4
0
    node = doc.createElementNS('www.fourthought.com', 'ft:Node4')
    if nm.setNamedItemNS(node) != None:
        tester.error('setNamedItemNS returns a value; should be (null)')
    tester.testDone()

    tester.startTest("Testing getNamedItemNS()")
    if nm.getNamedItemNS('www.fourthought.com',
                         'Node4').nodeName != node.nodeName:
        tester.error("getNamedItemNS failed")
    tester.testDone()

    tester.startTest("Testing removeNamedItemNS()")
    if nm.removeNamedItemNS('www.fourthought.com',
                            'Node4').nodeName != node.nodeName:
        tester.error("removeNamedItemNS failed")
    if nm.length != 1:
        tester.error("removeNamedItemNS failed")
    tester.testDone()

    return tester.groupDone()


if __name__ == '__main__':

    import sys
    import TestSuite

    testSuite = TestSuite.TestSuite()
    retVal = test(testSuite)
    sys.exit(retVal)
示例#5
0
 def testSuite(self):
     suite = TestSuite()
     suite.add(WasRun("testMethod"))
     suite.add(WasRun("testBrokenMethod"))
     suite.run(self.result)
     assert ("2 run, 1 failed" == self.result.summary())
示例#6
0
        test.run(self.result)
        assert ("1 run, 0 failed" == self.result.summary())

    def testFailedResult(self):
        test = WasRun("testBrokenMethod")
        test.run(self.result)
        assert ("1 run, 1 failed" == self.result.summary())

    def testFailedResultFormatting(self):
        self.result.testStarted()
        self.result.testFailed()
        assert ("1 run, 1 failed" == self.result.summary())

    def testSuite(self):
        suite = TestSuite()
        suite.add(WasRun("testMethod"))
        suite.add(WasRun("testBrokenMethod"))
        suite.run(self.result)
        assert ("2 run, 1 failed" == self.result.summary())


suite = TestSuite()
suite.add(TestCaseTest("testTemplateMethod"))
suite.add(TestCaseTest("testResult"))
suite.add(TestCaseTest("testFailedResult"))
suite.add(TestCaseTest("testFailedResultFormatting"))
suite.add(TestCaseTest("testSuite"))
result = TestResult()
suite.run(result)
print(result.summary())
示例#7
0
        tester.error('splitText did not properly split first half')
    if t2.data != 'TWO':
        tester.error('splitText did not properly split second half')
    try:
        t.splitText(100)
    except DOMException, x:
        if x.code != INDEX_SIZE_ERR:
            name = get_exception_name(x.code)
            tester.error("Wrong exception '%s', expected INDEX_SIZE_ERR" %
                         name)
    else:
        tester.error('splitText doesn\'t catch an invalid index')
    tester.testDone()

    tester.startTest('Testing cloneNode()')
    t3 = t.cloneNode(0)
    if t3.data != t.data:
        error("cloneNode does not copy data")
    tester.testDone()

    return tester.groupDone()


if __name__ == '__main__':
    import sys
    import TestSuite

    tester = TestSuite.TestSuite()
    retVal = test(tester)
    sys.exit(retVal)
示例#8
0
ArgumentsList = list(map(str, ArgumentString.split(',')))
path = os.getcwd()
new_path = os.path.join(path, 'TestSuites')
TestCases = []
for filename in os.listdir(new_path):
    for foldername in ArgumentsList:
        if foldername == filename:
            for jsonfilename in os.listdir(os.path.join(new_path, foldername)):
                if (jsonfilename[-5:] == '.json'):
                    TestCases.append(foldername + "/" + jsonfilename[:-5])
data = {}
data['testCases'] = TestCases
ActualResult = TestCases
os.chdir(path)
for testName in data["testCases"]:
    TotalTestCases += 1
    testSuite = TestSuite(testName, TestCases)
    countpass, countfail, passed_list, failed_list, utterancesList = testSuite.begin(
    )
    passed_data = passed_list
    failed_data.append(failed_list)
    writeResults(testName, countpass, countfail, utterancesList)
path = os.getcwd()
new_path = os.path.join(path, 'TestSuites')
os.chdir(new_path)
filenames = []
for filename in TestCases:
    filenames.append(filename + '.xlsx')
os.chdir(path)
writeSummary(filenames)
								<td style="color:green; font-weight:bold">""" + str(
        countpass) + """</td>
							</tr>
							<tr>
								<td>Fail</td>
								<td style="color:red; font-weight:bold">""" + str(countfail) + """</td>
							</tr>
							<tr>
								<td>Total</td>
								<td style="color:orange; font-weight:bold">""" + str(
            countfail + countpass) + """</td>
							</tr>
							</table>

						</body>
					</html>"""
    # message  = message.format(countpass=str(self.countpass),countfail=str(self.countfail),counttotal=str(self.total))
    # return message
    f.write(message)
    f.close()


f = open(resultsHtml, 'w')
f.close()
with open(testSuiteFile) as data_file:
    data = json.load(data_file)
    for testName in data["testCases"]:
        testSuite = TestSuite(testName)
        countpass, countfail = testSuite.begin()
        testName = testName.split("/")[-1]
        writeResults(testName, countpass, countfail)
示例#10
0
from TestSuite import *
from Trial import *
from itertools import combinations

radius = 1

suite_id = 1
flag_num = 5
distance = 7.46

ts1 = TestSuite(suite_id, flag_num, distance)
ts1.generate()
file_name = './test_' + str(flag_num) + '_' + str(distance) + '.json'
ts1.save(file_name)
示例#11
0
def main():
    # default directory for the tests: the current working directory
    # @todo: test these
    cwd = os.path.abspath(os.getcwd())
    # default script file path: in the parent directory a zip file
    # whose basename is identical to the basename of the current working
    # directory
    script_source = cwd + "../" + os.path.basename(cwd) + ".zip"

    # for testing:
    cwd = '/Users/csaba/Dropbox/Public/CMPUT-174-2012-Fall/assignments/as-174-2-marking-basic'
    script_source = '/Users/csaba/Dropbox/Public/CMPUT-174-2012-Fall/assignments/as-174-2'

    parser = argparse.ArgumentParser(
        description='Run tests against a submission file.'
        #            , epilog='''aaa'''
    )
    parser.add_argument('--submission',
                        '-s',
                        default=script_source,
                        help='Scripts to be tested again (zip or dir)')
    parser.add_argument(
        '--test_directory',
        '-t',
        default=cwd,
        help='Directory containing the tests (defaults to current)')
    parser.add_argument('--verbose',
                        '-v',
                        action='store_true',
                        help='show the detailed outcome of the tests')
    parser.add_argument('--visible_space_diff',
                        '-p',
                        action='store_true',
                        help='show the results of the diff')
    parser.add_argument('--timeout', type=int,default=200
                       ,  help='Terminate the script with an error after the '\
                               'timeout has passed')
    parser.add_argument('--generate',
                        '-g',
                        action='store_true',
                        help='generates expected outputs')
    #    parser.add_argument('--pep8', action='store_true'
    #                       , help='Run pep8 on the source files')
    parser.add_argument('--wait_on_exit', '-w', action='store_true'
                       , help='Exit on finish instead of pausing and waiting '\
                              'for the user')
    parser.add_argument(
        '--verify_script_dir',
        action='store_true',
        help='Verify whether the script directory is correctly formatted')
    parser.add_argument('--python_only',
                        action='store_true',
                        help='Allow python only')
    args = parser.parse_args()

    testcase_source = os.path.abspath(os.getcwd())
    if args.test_directory:
        testcase_source = args.test_directory
    try:
        any_language = not args.python_only
        print("Creating test suite")
        test_suite = TestSuite.TestSuite(testcase_source, any_language)
        print("Collecting script-tests")
        test_suite.collect_tests(create_missing_dirs=False)
        print("Collected %s script-tests" % len(test_suite.test_cases))

        print("Verifying submission files")
        script_source = args.submission
        script_dir = TestSuite.prep_submission(script_source,
                                               test_suite.assignment_name,
                                               args.verify_script_dir)

        print("Running tests")
        test_suite.run_tests(script_dir,
                             timeout=args.timeout,
                             gen_res=args.generate,
                             visible_space_diff=args.visible_space_diff,
                             verbose=args.verbose,
                             stop_early=False)
        summary = test_suite.get_summary()
        print(
            "Number of tests: %s Errors: %s Serious failures: %s All failures: %s"
            % summary)
        # report the results

        if args.wait_on_exit:
            input("Press <Enter> to exit")
    except RuntimeError as err:
        print("Error:\n" + str(err))
示例#12
0
    testRestriction(tester, doc, Nodes, Nodes['Comment'], good)
    tester.testDone()


    tester.startTest('Testing Text')
    good = [
            ]

    testRestriction(tester, doc, Nodes, Nodes['Text'], good)
    tester.testDone()


    tester.startTest('Testing CDATASection')
    good = [
            ]

    testRestriction(tester, doc, Nodes, Nodes['CDATA'], good)
    tester.testDone()


    return tester.groupDone()


if __name__ == '__main__':
    import sys
    import TestSuite

    tester = TestSuite.TestSuite(0,1)
    retVal = test(tester)
    sys.exit(retVal)
示例#13
0
    if p1.nodeType != e.nodeType:
        tester.error("cloneNode failed on nodeType")
    if p1.ownerDocument.nodeName != e.ownerDocument.nodeName:
        tester.error("cloneNode failed on ownerDocument")
    tester.testDone()

    tester.startTest("Testing cloneNode() [deep]")
    p2 = e.cloneNode(1)
    #Verify the same number of different children
    if p2.childNodes.length != e.childNodes.length:
        tester.error("cloneNode didn\'t copy all of the nodes")
    if p2.firstChild == e.firstChild:
        tester.error("cloneNode failed on firstChild")
    if p2.lastChild == e.lastChild:
        tester.error("cloneNode failed on lastChild")
    if p2.childNodes.item(1) == e.childNodes.item(1):
        tester.error("cloneNode has the same children")
    tester.testDone()

    return tester.groupDone()


if __name__ == '__main__':
    import sys

    import TestSuite
    tester = TestSuite.TestSuite(1, 1)

    retVal = test(tester)
    sys.exit(retVal)
示例#14
0
def test(tester=None):
    if tester is None:
        import TestSuite
        tester = TestSuite.TestSuite(1,1)

    tester.startGroup('DOM Level II Ranges')

    tester.startTest('Creating test environment')
    ReadDoc()
    tester.testDone()


    tester.startTest("Compare Positions")
    range = doc.createRange()

    #CASE 1
    tester.testResults(Range.Range.POSITION_EQUAL,range._Range__comparePositions(ADDRBOOK,0,ADDRBOOK,0),done=0)
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(ADDRBOOK,0,ADDRBOOK,1),done=0)
    tester.testResults(Range.Range.POSITION_GREATER_THAN,range._Range__comparePositions(ADDRBOOK,1,ADDRBOOK,0),done=0)

    #CASE 2
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(ADDRBOOK,0,EN,1),done=0,msg = 'CASE 2 #1')
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(ADDRBOOK,5,EN,1),done=0,msg = 'CASE 2 #2')
    tester.testResults(Range.Range.POSITION_GREATER_THAN,range._Range__comparePositions(ADDRBOOK,6,EN,1),done=0,msg = 'CASE 2 #3')
    #CASE 3
    tester.testResults(Range.Range.POSITION_GREATER_THAN,range._Range__comparePositions(EN,1,ADDRBOOK,0),done=0,msg = 'CASE 3 #1')
    tester.testResults(Range.Range.POSITION_GREATER_THAN,range._Range__comparePositions(EN,1,ADDRBOOK,5),done=0,msg = 'CASE 3 #2')
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(EN,1,ADDRBOOK,6),done=0,msg = 'CASE 3 #3')

    #CASE 4
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(PA,0,EN_NAME,0),done=0,msg = 'CASE 4 #1')
    tester.testResults(Range.Range.POSITION_GREATER_THAN,range._Range__comparePositions(EN,0,PA_NAME,0),done=0,msg = 'CASE 4 #2')

    #TEst with one as doc
    tester.testResults(Range.Range.POSITION_LESS_THAN,range._Range__comparePositions(doc,0,EN_NAME,0),done=0,msg = 'w/doc')


    tester.testDone()


    tester.startTest("Range.setStart")
    range.setStart(PA,1)

    tester.testResults(PA,range.startContainer,done=0,msg='setStart 1')
    tester.testResults(1,range.startOffset,done=0,msg='setStart 2')
    tester.testResults(PA,range.endContainer,done=0,msg='setStart 3')
    tester.testResults(1,range.endOffset,done=0,msg='setStart 4')
    tester.testResults(PA,range.commonAncestorContainer,done=0,msg='setStart 5')
    tester.testResults(1,range.collapsed,done=0,msg='collapsed')
    tester.testDone()

    tester.startTest("Range.setEnd")

    range.setEnd(PA_NAME,1)
    tester.testResults(PA,range.startContainer,done=0,msg='setEnd 1')
    tester.testResults(1,range.startOffset,done=0,msg='setEnd 2')
    tester.testResults(PA_NAME,range.endContainer,done=0,msg='setEnd 3')
    tester.testResults(1,range.endOffset,done=0,msg='setEnd 4')
    tester.testResults(PA,range.commonAncestorContainer,done=0,msg='setEnd 5')
    tester.testResults(0,range.collapsed,done=0,msg='collapsed')

    range.setEnd(EN_NAME,1)
    tester.testResults(PA,range.startContainer,done=0,msg='setEnd 6')
    tester.testResults(1,range.startOffset,done=0,msg='setEnd 7')
    tester.testResults(EN_NAME,range.endContainer,done=0,msg='setEnd 8')
    tester.testResults(1,range.endOffset,done=0,msg='setEnd 9')
    tester.testResults(ADDRBOOK,range.commonAncestorContainer,done=0,msg='setEnd 10')
    tester.testResults(0,range.collapsed,done=0,msg='collapsed')

    range.setEnd(doc,0)
    tester.testResults(doc,range.startContainer,done=0,msg='setEnd 11')
    tester.testResults(0,range.startOffset,done=0,msg='setEnd 12')
    tester.testResults(doc,range.endContainer,done=0,msg='setEnd 13')
    tester.testResults(0,range.endOffset,done=0,msg='setEnd 14')
    tester.testResults(doc,range.commonAncestorContainer,done=0,msg='setEnd 15')
    tester.testResults(1,range.collapsed,done=0,msg='collapsed')
    tester.testDone()

    tester.startTest("Range.startAfter")

    range.setEnd(EN_NAME,1)
    range.setStartAfter(EN)
    tester.testResults(ADDRBOOK,range.startContainer,done=0,msg='startAfter 1')
    tester.testResults(6,range.startOffset,done=0,msg='startAfter 2')
    tester.testResults(ADDRBOOK,range.commonAncestorContainer,done=0,msg='startAfter 3')
    tester.testDone()

    tester.startTest("Range.startBefore")
    range.setEnd(EN_NAME,1)
    range.setStartBefore(EN)
    tester.testResults(ADDRBOOK,range.startContainer,done=0,msg='startBefore 1')
    tester.testResults(5,range.startOffset,done=0,msg='startBefore 2')
    tester.testResults(ADDRBOOK,range.commonAncestorContainer,done=0,msg='startBefore 3')
    tester.testDone()

    tester.startTest("Range.endAfter")
    range.setStart(ADDRBOOK,0)
    range.setEndAfter(EN_NAME)
    tester.testResults(EN,range.endContainer,done=0,msg='endAfter 1')
    tester.testResults(2,range.endOffset,done=0,msg='endAfter 2')
    tester.testResults(ADDRBOOK,range.commonAncestorContainer,done=0,msg='endAfter 3')
    tester.testDone()

    tester.startTest("Range.endBefore")
    range.setStart(ADDRBOOK,0)
    range.setEndBefore(EN_NAME)
    tester.testResults(EN,range.endContainer,done=0,msg='endBefore 1')
    tester.testResults(1,range.endOffset,done=0,msg='endBefore 2')
    tester.testResults(ADDRBOOK,range.commonAncestorContainer,done=0,msg='endBefore 3')
    tester.testDone()

    tester.startTest("Range.collapse")
    range.setStart(ADDRBOOK,0)
    range.setEndBefore(EN_NAME)
    range.collapse(1)
    tester.testResults(ADDRBOOK,range.startContainer,done=0,msg='collapse 1')
    tester.testResults(0,range.startOffset,done=0,msg='collapse 2')
    tester.testResults(ADDRBOOK,range.endContainer,done=0,msg='collapse 3')
    tester.testResults(0,range.endOffset,done=0,msg='collapse 4')
    range.setStart(ADDRBOOK,0)
    range.setEndBefore(EN_NAME)
    range.collapse(0)
    tester.testResults(EN,range.startContainer,done=0,msg='collapse 5')
    tester.testResults(1,range.startOffset,done=0,msg='collapse 6')
    tester.testResults(EN,range.endContainer,done=0,msg='collapse 7')
    tester.testResults(1,range.endOffset,done=0,msg='collapse 8')
    tester.testDone()

    tester.startTest("Range.selectNode")
    range.selectNode(EN)
    tester.testResults(ADDRBOOK,range.startContainer,done=0,msg='selectNode 1')
    tester.testResults(5,range.startOffset,done=0,msg='selectNode 2')
    tester.testResults(ADDRBOOK,range.endContainer,done=0,msg='selectNode 3')
    tester.testResults(6,range.endOffset,done=0,msg='selectNode 4')
    tester.testDone()

    tester.startTest("Range.selectNodeContents")
    range.selectNodeContents(EN)
    tester.testResults(EN,range.startContainer,done=0,msg='selectNodeContents 1')
    tester.testResults(0,range.startOffset,done=0,msg='selectNodeContents 2')
    tester.testResults(EN,range.endContainer,done=0,msg='selectNodeContents 3')
    tester.testResults(13,range.endOffset,done=0,msg='selectNodeContents 4')
    tester.testDone()

    tester.startTest("Range.compareBoundaryPoints")
    range.selectNodeContents(EN)
    r2 = doc.createRange()
    r2.selectNode(PA)

    tester.testResults(1,range.compareBoundaryPoints(range.START_TO_START,r2),done=0,msg='compareBoundaryPoints 1')
    tester.testResults(1,range.compareBoundaryPoints(range.START_TO_END,r2),done=0,msg='compareBoundaryPoints 2')
    tester.testResults(1,range.compareBoundaryPoints(range.END_TO_START,r2),done=0,msg='compareBoundaryPoints 3')
    tester.testResults(1,range.compareBoundaryPoints(range.END_TO_END,r2),done=0,msg='compareBoundaryPoints 4')
    tester.testDone()


    tester.startTest("Range.deleteContents")
    range.setStart(EN_NAME.firstChild,2)
    range.setEnd(EN_NAME.firstChild,11)

    range.deleteContents()

    tester.testResults('Emsi',EN_NAME.firstChild.data,done=0,msg='deleteContents 1')

    ReadDoc()
    range = doc.createRange()
    range.setStart(EN,2)
    range.setEnd(EN,12)

    range.deleteContents()

    tester.testResults(2,len(EN.childNodes),done=0,msg='deleteContents 2')
    tester.testResults(EN_NAME,EN.childNodes[1],done=0,msg='deleteContents 3')


    #Start is the ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(ADDRBOOK,0)
    range.setEnd(EN_PAGER,1)

    range.deleteContents()

    tester.testResults(4,len(ADDRBOOK.childNodes),done=0,msg='deleteContents 4')
    tester.testResults(4,len(EN.childNodes),done=0,msg='deleteContents 5')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='deleteContents 6')
    tester.testResults(None,EN.childNodes[0].firstChild,done=0,msg='deleteContents 7')


    #End is the acnestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(ADDRBOOK,4)

    range.deleteContents()

    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='deleteContents 18')
    tester.testResults(2,len(PA.childNodes),done=0,msg='deleteContents 19')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='deleteContents 20')
    tester.testResults(None,PA.childNodes[1].firstChild,done=0,msg='deleteContents 21')


    #Text to text deep ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME.firstChild,2)
    range.setEnd(EN_PAGER.firstChild,4)

    range.deleteContents()


    tester.testResults(2,len(PA.childNodes),done=0,msg='deleteContents 2')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='deleteContents 3')
    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='deleteContents 4')
    tester.testResults(4,len(EN.childNodes),done=0,msg='deleteContents 5')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='deleteContents 6')


    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(EN_PAGER,1)

    range.deleteContents()

    tester.testResults(2,len(PA.childNodes),done=0,msg='deleteContents 7')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='deleteContents 8')
    tester.testResults(None,PA.childNodes[1].firstChild,done=0,msg='deleteContents 9')
    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='deleteContents 10')
    tester.testResults(4,len(EN.childNodes),done=0,msg='deleteContents 11')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='deleteContents 12')
    tester.testResults(None,EN.childNodes[0].firstChild,done=0,msg='deleteContents 13')


    tester.testDone()

    tester.startTest("Range.extractContents")

    #Test two text nodes same
    ReadDoc()
    range = doc.createRange()
    range.setStart(EN_NAME.firstChild,2)
    range.setEnd(EN_NAME.firstChild,11)

    df = range.extractContents()

    tester.testResults('Emsi',EN_NAME.firstChild.data,done=0,msg='extractContents 1')
    tester.testResults(1,len(df.childNodes),done=0,msg='extractContents 2')
    tester.testResults('eka Ndubui',df.childNodes[0].data,done=0,msg='extractContents 3')

    #Two elements, same node
    ReadDoc()
    range = doc.createRange()
    range.setStart(EN,2)
    range.setEnd(EN,12)

    df = range.extractContents()

    tester.testResults(2,len(EN.childNodes),done=0,msg='extractContents 4')
    tester.testResults(EN_NAME,EN.childNodes[1],done=0,msg='extractContents 5')
    tester.testResults(11,len(df.childNodes),done=0,msg='extractContents 6')
    tester.testResults(EN_ADDR,df.childNodes[1],done=0,msg='extractContents 7')
    tester.testResults(EN_EMAIL,df.childNodes[9],done=0,msg='extractContents 8')


    #Start is the ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(ADDRBOOK,0)
    range.setEnd(EN_PAGER,1)

    df = range.extractContents()

    tester.testResults(4,len(ADDRBOOK.childNodes),done=0,msg='extractContents 9')
    tester.testResults(4,len(EN.childNodes),done=0,msg='extractContents 10')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='extractContents 11')
    tester.testResults(None,EN.childNodes[0].firstChild,done=0,msg='extractContents 12')
    tester.testResults(6,len(df.childNodes),done=0,msg='extractContents 13')

    #End is the acnestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(ADDRBOOK,4)

    df = range.extractContents()


    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='extractContents 14')
    tester.testResults(2,len(PA.childNodes),done=0,msg='extractContents 15')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='extractContents 16')
    tester.testResults(None,PA.childNodes[1].firstChild,done=0,msg='extractContents 17')
    tester.testResults(4,len(df.childNodes),done=0,msg='extractContents 18')





    #Text to text deep ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME.firstChild,2)
    range.setEnd(EN_PAGER.firstChild,4)

    df = range.extractContents()


    tester.testResults(2,len(PA.childNodes),done=0,msg='extractContents 19')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='extractContents 20')
    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='extractContents 21')
    tester.testResults(4,len(EN.childNodes),done=0,msg='extractContents 22')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='extractContents 23')
    tester.testResults(5,len(df.childNodes),done=0,msg='extractContents 24')



    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(EN_PAGER,1)

    df = range.extractContents()

    tester.testResults(2,len(PA.childNodes),done=0,msg='extractContents 25')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='extractContents 26')
    tester.testResults(None,PA.childNodes[1].firstChild,done=0,msg='extractContents 27')
    tester.testResults(6,len(ADDRBOOK.childNodes),done=0,msg='extractContents 28')
    tester.testResults(4,len(EN.childNodes),done=0,msg='extractContents 29')
    tester.testResults(EN_PAGER,EN.childNodes[0],done=0,msg='extractContents 30')
    tester.testResults(None,EN.childNodes[0].firstChild,done=0,msg='extractContents 31')
    tester.testResults(5,len(df.childNodes),done=0,msg='extractContents 32')


    tester.testDone()


    tester.startTest("Range.cloneContents")

    #Test two text nodes same
    ReadDoc()
    range = doc.createRange()
    range.setStart(EN_NAME.firstChild,2)
    range.setEnd(EN_NAME.firstChild,11)

    df = range.cloneContents()


    tester.testResults('Emeka Ndubuisi',EN_NAME.firstChild.data,done=0,msg='cloneContents 1')
    tester.testResults(1,len(df.childNodes),done=0,msg='cloneContents 2')
    tester.testResults('eka Ndubui',df.childNodes[0].data,done=0,msg='cloneContents 3')



    #Two elements, same node
    ReadDoc()
    range = doc.createRange()
    range.setStart(EN,2)
    range.setEnd(EN,12)

    df = range.cloneContents()


    tester.testResults(13,len(EN.childNodes),done=0,msg='cloneContents 4')
    tester.testResults(EN_NAME,EN.childNodes[1],done=0,msg='cloneContents 5')
    tester.testResults(11,len(df.childNodes),done=0,msg='cloneContents 6')
    tester.testResults('42 Spam Blvd',df.childNodes[1].firstChild.data,done=0,msg='cloneContents 7')
    tester.testResults('*****@*****.**',df.childNodes[9].firstChild.data,done=0,msg='cloneContents 8')


    #Start is the ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(ADDRBOOK,0)
    range.setEnd(EN_PAGER,1)

    df = range.cloneContents()




    tester.testResults(9,len(ADDRBOOK.childNodes),done=0,msg='cloneContents 9')
    tester.testResults(13,len(EN.childNodes),done=0,msg='cloneContents 10')
    tester.testResults(EN_PAGER,EN.childNodes[9],done=0,msg='cloneContents 11')
    tester.testResults('800-SKY-PAGEx767676',EN_PAGER.firstChild.data,done=0,msg='cloneContents 12')
    tester.testResults(6,len(df.childNodes),done=0,msg='cloneContents 13')


    #End is the acnestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(ADDRBOOK,4)

    df = range.cloneContents()


    tester.testResults(9,len(ADDRBOOK.childNodes),done=0,msg='cloneContents 14')
    tester.testResults(13,len(PA.childNodes),done=0,msg='cloneContents 15')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='cloneContents 16')
    tester.testResults('Pieter Aaron',PA_NAME.firstChild.data,done=0,msg='cloneContents 17')
    tester.testResults(4,len(df.childNodes),done=0,msg='cloneContents 18')


    #Text to text deep ancestor
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME.firstChild,2)
    range.setEnd(EN_PAGER.firstChild,4)

    df = range.cloneContents()


    tester.testResults(13,len(PA.childNodes),done=0,msg='cloneContents 19')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='cloneContents 20')
    tester.testResults(9,len(ADDRBOOK.childNodes),done=0,msg='cloneContents 21')
    tester.testResults(13,len(EN.childNodes),done=0,msg='cloneContents 22')
    tester.testResults(EN_PAGER,EN.childNodes[9],done=0,msg='cloneContents 23')
    tester.testResults(5,len(df.childNodes),done=0,msg='cloneContents 24')


    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME,0)
    range.setEnd(EN_PAGER,1)

    df = range.cloneContents()

    tester.testResults(13,len(PA.childNodes),done=0,msg='cloneContents 25')
    tester.testResults(PA_NAME,PA.childNodes[1],done=0,msg='cloneContents 26')
    tester.testResults(9,len(ADDRBOOK.childNodes),done=0,msg='cloneContents 27')
    tester.testResults(13,len(EN.childNodes),done=0,msg='cloneContents 29')
    tester.testResults(EN_PAGER,EN.childNodes[9],done=0,msg='cloneContents 30')
    tester.testResults(5,len(df.childNodes),done=0,msg='cloneContents 32')


    tester.testDone()

    tester.startTest("Range.insertNode")
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA_NAME.firstChild,1)
    range.setEnd(EN_PAGER,1)

    newNode = doc.createElement('FOO')

    range.insertNode(newNode)

    tester.testResults(3,len(PA_NAME.childNodes),done=0,msg='insertNode 1')
    tester.testResults('P',PA_NAME.firstChild.data,done=0,msg='insertNode 2')
    tester.testResults(newNode,PA_NAME.childNodes[1],done=0,msg='insertNode 3')


    ReadDoc()
    range = doc.createRange()
    range.setStart(PA,1)
    range.setEnd(EN_PAGER,1)

    newNode = doc.createElement('FOO')

    range.insertNode(newNode)

    tester.testResults(14,len(PA.childNodes),done=0,msg='insertNode 3')
    tester.testResults(newNode,PA.childNodes[2],done=0,msg='insertNode 4')

    tester.testDone()


    tester.startTest("Range.surroundContents")
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA,0)
    range.setEnd(PA,9)

    newNode = doc.createElement('FOO')

    range.surroundContents(newNode)


    tester.testResults(4,len(PA.childNodes),done=0,msg='insertNode 1')
    tester.testResults(newNode,PA.childNodes[1],done=0,msg='insertNode 2')
    tester.testDone()


    tester.startTest("Range.cloneRange")
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA,0)
    range.setEnd(PA,9)

    newRange = range.cloneRange()

    tester.testResults(newRange.endOffset,range.endOffset,done=0,msg='cloneRange 1')
    tester.testResults(newRange.endContainer,range.endContainer,done=0,msg='cloneRange 2')
    tester.testResults(newRange.startOffset,range.startOffset,done=0,msg='cloneRange 3')
    tester.testResults(newRange.startContainer,range.startContainer,done=0,msg='cloneRange 4')
    tester.testResults(newRange.collapsed,range.collapsed,done=0,msg='cloneRange 5')
    tester.testResults(newRange.commonAncestorContainer,range.commonAncestorContainer,done=0,msg='cloneRange 6')
    tester.testDone()

    tester.startTest("Range.toString")
    ReadDoc()
    range = doc.createRange()
    range.setStart(PA,0)
    range.setEnd(PA,9)

    range.toString()

    range.setStart(PA_NAME.firstChild,3)
    range.setEnd(EN_EMAIL.firstChild,9)

    range.toString()

    tester.testDone()

    tester.startTest("Range.detach")

    ReadDoc()
    range = doc.createRange()
    range.detach()
    from xml.dom import InvalidStateErr

    try:
        print range.startOffset
    except InvalidStateErr, e:
        tester.testDone