# create a randomize log file name in /tmp rnum = random.randint(10000, 99999) logname = "log" + str(rnum) + ".log" logpath = os.path.join('/tmp', logname) # call quilt submit -y logging_not_a_pattern -l DEBUG --log-file # random_log_file queryStr = 'logging_not_a_pattern' quilt_test_core.call_quilt_script('quilt_submit.py', [queryStr, '--log-file', logpath], whichReturn=sei_core.EXITCODE, checkCall=False) # check resulting log file contains "logging_not_a_pattern" exists = 0 == sei_core.run_process( 'grep "' + queryStr + '" "' + logpath + '" > /dev/null', shell=True, whichReturn=sei_core.EXITCODE, checkCall=False) self.assertTrue(exists) # delete the temp log file os.remove(logpath) if __name__ == "__main__": quilt_test_core.unittest_main_helper( "Run integration test that verifies at least some logic functionality" " is behaving as desired", sys.argv) unittest.main()
def test_basic_status(self): quilt_lib_dir = quilt_test_core.get_quilt_lib_dir() # assemble the filename for query master quilt_status_file = os.path.join(quilt_lib_dir, 'quilt_status.py') # call quilt_status (check return code, capture output) out = sei_core.run_process([quilt_status_file, '-l', 'DEBUG'], whichReturn=sei_core.STDOUT, logToPython=False) # assure that name of the test source manager appears in the # output, test source name specified in testing # config smd.d dir cfg = quilt_core.QuiltConfig() smgrs = cfg.GetSourceManagers() for smgr in smgrs: self.assertTrue(smgr in out) # check qmd to be sure that all quilt_status's have # unregistered when process exits with quilt_core.GetQueryMasterProxy(cfg) as qm: qs = qm.GetClients("QuiltStatus") self.assertTrue(len(qs) == 0) if __name__ == "__main__": quilt_test_core.unittest_main_helper("Run the most basic of test cases", sys.argv) unittest.main()
result is sorted """ # issue a valid query # Assure proper execution, and get results from quilt_history o = str(quilt_test_core.call_quilt_script('quilt_submit.py', [ '-y', 'out_of_order'])) o = self.check_query_and_get_results3(o) # Check results # assure that results are in order l = [] for i in xrange(1, 6): searchStr = "{'timestamp': " + str(i) + '}' index = o.find(searchStr) logging.debug("looking for string: " + searchStr) self.assertTrue(index != -1) l.append(index) isSorted = all(l[i] <= l[i + 1] for i in xrange(len(l) - 1)) self.assertTrue(isSorted) if __name__ == "__main__": quilt_test_core.unittest_main_helper( "Run integration test for assuring unordered sources are ordered by " "the system", sys.argv) unittest.main()
len([m.start() for m in re.finditer( "Occurs_1_time", o)])) # have to +2 because the search variable # and src query spec is also in the stdout self.assertTrue(occurences == 1 + 2) occurences = ( len([m.start() for m in re.finditer( "Occurs_3_times", o)])) self.assertTrue(occurences == 1 + 4) # have no + 1, these are defaults set from src pattern occurences = ( len([m.start() for m in re.finditer( "src default for pat2 occurs twice", o)])) self.assertTrue(occurences == 3) occurences = ( len([m.start() for m in re.finditer( "src default for pat1 occurs once", o)])) self.assertTrue(occurences == 2) if __name__ == "__main__": quilt_test_core.unittest_main_helper( "Run integration test for multiple basic source", sys.argv) unittest.main()
# issue the query using the qor pattern o = str(quilt_test_core.call_quilt_script('quilt_submit.py', [ 'semantics_qor', '-y' ])) # assure the query is successful, and get results o = self.check_query_and_get_results(o) # check that results contain one number only in small occurences = ( len([m.start() for m in re.finditer( "{'timestamp': 9}", o)])) self.assertTrue(occurences == 1) # check that results contain one number only in med occurences = ( len([m.start() for m in re.finditer( "{'timestamp': 20}", o)])) self.assertTrue(occurences == 1) # check that results contain one number only from both occurences = ( len([m.start() for m in re.finditer( "{'timestamp': 10}", o)])) self.assertTrue(occurences == 1) if __name__ == "__main__": quilt_test_core.unittest_main_helper( "Run integration test for semantic processing", sys.argv) unittest.main()
self.contains_once(o, "{'timestamp': 5}") self.contains_once(o, "{'timestamp': 7}") self.contains_once(o, "{'timestamp': 9}") def test_concurrent(self): """ submits the dups_concurrent pattern and assures that no duplicates are reported Also assures that correct values are placed in results """ # issue a valid query # Assure proper execution, and get results from quilt_history o = str(quilt_test_core.call_quilt_script('quilt_submit.py', [ '-y', 'dups_concurrent'])) o = self.check_query_and_get_results2(o) self.contains_once(o, "{'timestamp': 2}") self.contains_once(o, "{'timestamp': 4}") self.contains_once(o, "{'timestamp': 6}") self.contains_once(o, "{'timestamp': 8}") self.contains_once(o, "{'timestamp': 10}") if __name__ == "__main__": quilt_test_core.unittest_main_helper( "Run integration test for duplicate event prevention", sys.argv) unittest.main()