def test_report_local_fail(self):
        if self.port is None:
            port = 8133
            count = 8
            server = test_server.TestServer(port, count)
            thread = threading.Thread(None, server.start_server)
            thread.start()
        else:
            port = self.port

        log_file = os.tempnam(None, "stasis-")
        case_lib = stasis.TestCaseLibrary(self.cv)
        url = stasis.buildUrl("localhost", "user", "pass", "/", "http", port)
        xml_file = "seq_report_fail.xml"
        params = {}
        sequence_lib = stasis.TestSequenceLibrary(case_lib)
        series = sequence_lib.load(xml_file)
        log_reporter = stasis.LogTestCaseReporter(3, logfile=log_file)
        series.addReporter(log_reporter)
        testopia_reporter = stasis.TestopiaCaseReporter(url)
        series.addReporter(testopia_reporter)
        dispatcher = stasis.RunDispatcher(series, self.rr)
        dispatcher.run()
        case_fail_count = 0
        fail_count = 0
        fd = open(log_file, 'r')
        for line in fd.readlines():
            if re.search("CASE_FAIL_", line):
                case_fail_count += 1
            if re.search(" FAIL ", line):
                fail_count += 1

        fd.close()
        self.assertEqual(fail_count, 2)
        self.assertEqual(case_fail_count, 4)
示例#2
0
    def test_report_local_fail(self):
        port = 8232
        server = test_server.TestServer(port)
        server.count = 4
        server.start()
        log_file = os.tempnam(None,"stasis-")
        case_lib = stasis.TestCaseLibrary(self.cv)
        url = stasis.buildUrl("localhost","user","pass","","http", port)
        xml_file = os.path.join("testopia_run_files","seq_report_fail.xml")
        params = {}
        sequence_lib = stasis.TestSequenceLibrary(self.cv, 
                                                self.sv,
                                                case_lib)
                
        sequence = sequence_lib.load(xml_file) 
        log_reporter = stasis.LogTestCaseReporter(2, logfile=log_file)
        sequence.addReporter(log_reporter)
        testopia_reporter = stasis.TestopiaCaseReporter(url)
        sequence.addReporter(testopia_reporter)
        runner = stasis.Runner(sequence, params)
        runner.run(wait_before_kill=3)
        begin_count = 0
        pass_count = 0
        total = 2
        fd = open(log_file, 'r')
        for line in fd.readlines():
            if re.search(" BEGIN ", line):
                begin_count += 1
            if re.search(" ERROR ", line):
                pass_count += 1

        fd.close()
        self.assertEqual(pass_count, total)
        self.assertEqual(begin_count, total)
示例#3
0
 def test_list_seqence_local(self):
     port = 8222
     #server.count = 4
     server = test_server.TestServer(port, 4)
     thread.start_new(server.start_server, ())
     url = "http://localhost:%s" % (port)
     status, out = commands.getstatusoutput("%s -u %s -U %s -P %s -l %s 32" % (
                                             self.script_name,
                                             url,
                                             self.username,
                                             self.password,
                                             "list"))
     self.assertEqual(status, 0)
示例#4
0
 def test_run_seqence_local(self):
     port = 8222
     server = test_server.TestServer(port)
     server.count = 4
     server.start()
     log_file = os.tempnam(None,"stasis-")
     case_lib = stasis.TestCaseLibrary(self.cv)
     #url = stasis.buildUrl("localhost","user","pass","","http", port)
     url = "http://localhost:%s" % (port)
     status, out = commands.getstatusoutput("%s -u %s -U %s -P %s 32" % (
                                             self.script_name,
                                             url,
                                             self.username,
                                             self.password))
     self.assertEqual(status, 0)
    def test_sequence_save_ini(self):
        if self.port is None:
            port = 8817
            count = 12
            server = test_server.TestServer(port, count)
            thread = threading.Thread(None, server.start_server)
            thread.start()
        else:
            port = self.port

        ini_file = os.tempnam(None, "stasis_")
        case_lib = stasis.TestCaseLibrary(self.cv)
        url = stasis.buildUrl("localhost", "user", "pass", "/", "http", port)
        params = {}
        sequence_lib = stasis.TestSequenceLibrary(case_lib)
        series = sequence_lib.load(32, url)
        print "INI FILE: %s" % ini_file
        fd = open(ini_file, 'w')
        parser = ConfigParser.SafeConfigParser()
        for tc in series:
            tc.addConfSection(parser)

        parser.write(fd)
        fd.close()
        fd = open(ini_file, 'r')
        found_file_2 = False
        found_file_22 = False
        found_function = False
        line_count = 0
        section_count = 0
        lines = fd.readlines()
        fd.close()
        for line in lines:
            line_count += 1
            if re.search(' = case_pass_22', line):
                found_file_22 = True
            elif re.search(' = case_pass_2', line):
                found_file_2 = True
            elif re.search(' = test_case_pass_func', line):
                found_function = True
            elif re.search('\[.*/', line):
                section_count += 1

        self.assertEqual(line_count, 108)
        self.assertEqual(section_count, 9)
        self.assert_(found_file_2)
        self.assert_(found_file_22)
        self.assert_(found_function)
示例#6
0
    def test_list_seqence_local(self):
        if self.port is None:
            port = 8213
            server = test_server.TestServer(port, 10)
            server.count = 11
            thread = threading.Thread(None, server.start_server)
            thread.start()
        else:
            port = self.port
        url = "http://%s:%s@localhost:%s" % (self.password, self.username, port)
        script_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))), "scripts")
        cmd = "%s -u %s -l list 32" % (os.path.join(script_path, self.script_name), url)
        status, out = commands.getstatusoutput(cmd)
        
        self.assertEqual(status, 0)
        lines = out.split("\n")
        self.assertEqual(len(lines), 3)
        case_count = 0
        for line in lines:
            if re.search("case_pass_2", line):
                case_count += 1

        self.assertEqual(case_count, 2)
    def test_run_seqence_local(self):
        if self.port is None:
            port = 8113
            count = 12
            server = test_server.TestServer(port, count)
            thread = threading.Thread(None, server.start_server)
            thread.start()
        else:
            port = self.port

        log_file = os.tempnam(None, "stasis-")
        print "Log file: %s" % (log_file)
        case_lib = stasis.TestCaseLibrary(self.cv)
        url = stasis.buildUrl("localhost", "user", "pass", "/", "http", port)
        params = {}
        sequence_lib = stasis.TestSequenceLibrary(case_lib)
        series = sequence_lib.load(32, url)

        log_reporter = stasis.LogTestCaseReporter(debug=TestStasisTestopiaLocal.debug, \
                                                  logfile=log_file)
        series.addReporter(log_reporter)
        dispatcher = stasis.RunDispatcher(series, self.rr)
        dispatcher.run()
        case_pass_count = 0
        pass_count = 0
        total = 3
        fd = open(log_file, 'r')
        for line in fd.readlines():
            if re.search("CASE_PASS_", line):
                case_pass_count += 1
            if re.search(" PASS ", line):
                pass_count += 1

        fd.close()
        self.assertEqual(pass_count, total)
        self.assertEqual(case_pass_count, total)
示例#8
0
    def test_seqence_local_pass(self):
        if self.port is None:
            port = 8224
            server = test_server.TestServer(port, 10)
            server.count = 17
            thread = threading.Thread(None, server.start_server)
            thread.start()
        else:
            port = self.port
        url = "http://%s:%s@localhost:%s" % (self.password, self.username, port)
        script_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))), "scripts")
        cmd = "%s -u %s -vv 32" % (os.path.join(script_path, self.script_name),
                                   url)
        status, out = commands.getstatusoutput(cmd)
        self.assertEqual(status, 0)

        logdir = None
        lines = out.split("\n")
        for line in lines:
            m = re.search("Log directory: (.*)$", line)
            if m:
                logdir = m.group(1)
        
        self.assert_(logdir is not None)
        #self.assertEqual(len(lines), 3)
        logs = glob.glob(os.path.join(logdir,"run*log"))
        self.assertEqual(len(logs), 1)
        fd = open(logs[0])
        lines = fd.readlines()
        fd.close()
        case_count = 0
        for line in lines:
            if re.search("case_pass_2", line):
                case_count += 1

        self.assertEqual(case_count, 4)