예제 #1
0
 def test_addmultiple_objects(self):
     """ Tests that addmultiple can process multiple objects """
     testtable = self.connection.getadvancedtable("testtable")
     ## The more values used, the less likely that random happenstance would result in the correct row/rowid pairing
     input = [utils.TestObject(name="Foo",value=1),utils.TestObject(name="Bar",value=2),utils.TestObject(name="Bizz",value=3),utils.TestObject(name="Bazz",value = 4)]
     rowids = testtable.addmultiple(*input)
     
     ## Check that we got the correct number of rowids back
     self.assertEqual(len(rowids),len(input))
     ## Check that the rowids are what we would expect
     self.assertListEqual(rowids,[1,2,3,4])
     ## Get objects back out to ensure they went in correctly
     testtable.row_factory = objects.object_to_factory(utils.TestObject)
     self.assertListEqual(testtable.selectall(),input)
예제 #2
0
 def test_addmultiple_mixed(self):
     """ Tests that addmultiple can process multiple dicts and objects mixed together"""
     testtable = self.connection.getadvancedtable("testtable")
     ## The more values used, the less likely that random happenstance would result in the correct row/rowid pairing
     input = [utils.TestObject(name="Foo",value=1),dict(name="Bar",value=2),dict(name="Bizz",value=3),utils.TestObject(name="Bazz",value = 4)]
     rowids = testtable.addmultiple(*input)
     
     ## Check that we got the correct number of rowids back
     self.assertEqual(len(rowids),len(input))
     ## Check that the rowids are what we would expect
     self.assertListEqual(rowids,[1,2,3,4])
     ## We're going to convert them all to objects for comparison
     testtable.row_factory = objects.object_to_factory(utils.TestObject)
     ## We're also comparing rowid, since that isn't tested in this manner elsewhere
     self.assertListEqual(testtable.selectall(rowid = True),[utils.TestObject(name="Foo",value=1,rowid = 1),utils.TestObject(name="Bar",value=2,rowid = 2),
                                                 utils.TestObject(name="Bizz",value=3, rowid = 3),utils.TestObject(name="Bazz",value = 4, rowid = 4)]) 
예제 #3
0
 def test_addrow_object(self):
     """ Tests that an object can be passed which will be parsed by parseobject """
     testtable = self.connection.getadvancedtable("testtable")
     obj = utils.TestObject(name="Hello",value=1)
     ## Add object
     rowid = testtable.addrow(object = obj)
     rows = testtable.quickselect(rowid=True, pk = rowid)
     self.assertListEqual(rows,[(1,"Hello",1),])
예제 #4
0
 def test_addrow_bad_objectandkwargs(self):
     """ Tests that it is an error to specify both an object to add and kwargs for addrow """
     testtable = self.connection.getadvancedtable("testtable")
     obj = utils.TestObject(name="Hello",value=1)
     self.assertRaises(ValueError,testtable.addrow, object = obj, name = "Hello", value = 1)
예제 #5
0
 def test_select_replacements_bad(self):
     """ Tests that select only accepts lists, tuples, and dicts as replacements """
     testtable = self.connection.getadvancedtable("testtable")
     ## Various random stuff
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = "None")
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = 1)
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = 1.0000000)
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = True)
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = set())
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = (x for x in range(10)))
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = utils.TestObject)
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = utils.TestObject())
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = lambda: None)
     self.assertRaises(ValueError,testtable.select,query = "value = ?", replacements = utils.populatetesttable)