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')
Exemple #2
0
 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)
Exemple #3
0
 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')
Exemple #5
0
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)
Exemple #6
0
#!/usr/bin/env python

import sys


import rapidrecdb

sitename = sys.argv[1]
rapidrecdb.add_site(sitename)