def runTest(self): rapidrecdb.add_site(self.sitename) # test for good site names # whitespace before & after is okay (it is stripped during filtering) rrs = RapidRecSite(' ' + self.sitename) rrs = RapidRecSite(self.sitename + ' ') rrs = RapidRecSite(' \n ' + self.sitename + ' \t \n') # this name is fine, but the database shouldn't exist self.assertRaises(dbAccess.ConnectionError, RapidRecSite, 'this1sitedoesntexist') # test for bad site names self.assertRaises(filters.RangeError, RapidRecSite, '1openingdigit') self.assertRaises(filters.RangeError, RapidRecSite, 'thisnameisjusttoolongtouseforasitename') self.assertRaises(filters.RangeError, RapidRecSite, 'test`;SELECT * FROM `raw`;') self.assertRaises(filters.RangeError, RapidRecSite, 'no spaces allowed') self.assertRaises(filters.RangeError, RapidRecSite, 'nopunctuation!') rrs = RapidRecSite(self.sitename) # test for good field names rrs.set_field_analyzer('item', 'goodname', 'filter2') rrs.set_field_analyzer('item', 'MixEdCaSEgeTsStRIpPed', 'filter2') rrs.set_field_analyzer('item', 'numbersarefine2', 'filter2') rrs.set_field_analyzer('item', 'm9857032985794fgf', 'filter2') rrs.set_field_analyzer('item', ' \tleadingandtrailingwhitespacesareokay \n ', 'filter2') self.assertRaises(filters.RangeError, rrs.set_field_analyzer, 'item', 'no whitespace inside', 'filter2') self.assertRaises(filters.RangeError, rrs.set_field_analyzer, 'item', '`; select no sql hacking either;', 'filter2') self.assertRaises(filters.RangeError, rrs.set_field_analyzer, 'item', '1cannotstartwithanumber', 'filter2')
def setUp(self): self.sitename = 'test' if self.sitename in rapidrecdb.get_site_list(): rapidrecdb.drop_site(self.sitename) rapidrecdb.add_site(self.sitename) self.hostname = '%s.localhost' % self.sitename #self.hostname = '%s.rapidrec.com' % self.sitename self.conn = CachedHTTPConnection(self.hostname)
def runTest(self): # drop_site should raise an exception when dropping a nonexistent site self.assertRaises(rapidrecdb.SiteNotFoundError, rapidrecdb.drop_site, self.sitename) self.assert_(self.sitename not in rapidrecdb.get_site_list(), "get_site_list should not include the not-yet-existent test site") rapidrecdb.add_site(self.sitename) self.assert_(self.sitename in rapidrecdb.get_site_list(), "get_site_list should contain the newly-created test site") # add_site should raise an exception when creating a site that already exists self.assertRaises(rapidrecdb.DuplicateSiteError, rapidrecdb.add_site, self.sitename) rapidrecdb.drop_site(self.sitename) self.assert_(self.sitename not in rapidrecdb.get_site_list(), "get_site_list should no longer include the test site after it was dropped")
def runTest(self): rapidrecdb.add_site(self.sitename) rrs = RapidRecSite(self.sitename) #rrs.set_field_analyzer('nonexistentfield', 4) # test inserting a duplicate record - this should be permitted rrs.insert_relation(src_group='user', src_name='5', tgt_group='item', tgt_name='10', field='rating') rrs.insert_relation(src_group='user', src_name='5', tgt_group='item', tgt_name='10', field='rating') #self.assertEqual(rrs.get_field_id('rating'), 2, # "Field id for rating should have been created when the first " + # "rating record was inserted into raw.") #rrs.set_field_analyzer('rating', 1) #self.assertEqual(rrs.get_field_id('rating'), 2, # "rating was created second; it should have rating = 2, even " + # "though it has been updated since creation.") #self.assertEqual(rrs.get_field_id('newfield'), -1, # "newfield does not exist and thus should have an invalid field_id") #self.assertEqual(rrs.get_field_id('nonexistentfield'), 1, # "nonexistentfield should have been created first and thus have id=1") rrs.insert_meta('user', 3, 'name', 'Bob')
def directTest(): sitename = "test" try: rapidrecdb.drop_site(sitename) except rapidrecdb.SiteNotFoundError: pass rapidrecdb.add_site(sitename) # rrs.set_field_analyzer('nonexistentfield', 4) # test inserting a duplicate record - this should be permitted numPerLoop = 5000 numLoops = 30 numThreads = 4 threads = [None for i in range(numThreads)] numRecords = numLoops * numPerLoop * numThreads start_time = time() t = time() currThread = 0 recordNumAssigned = 0 recordNumCollected = 0 while recordNumCollected < numRecords: threads[currThread] if threads[currThread]: threads[currThread].join() recordNumCollected += numPerLoop if currThread == 0: print "%.2f" % (time() - t) t = time() if recordNumAssigned < numRecords: threads[currThread] = Hammer(hostname, "insertDirect", numPerLoop, currThread) threads[currThread].start() recordNumAssigned += numPerLoop currThread = (currThread + 1) % numThreads print "total time: %.2f s" % (time() - start_time) print "time per record: %.2f ms" % (1000.0 * (time() - start_time) / numRecords)
#!/usr/bin/env python import sys import rapidrecdb sitename = sys.argv[1] rapidrecdb.add_site(sitename)