From: Billy G. A. <bal...@us...> - 2001-09-05 04:53:05
|
Update of /cvsroot/pypgsql/pypgsql/test/regression In directory usw-pr-cvs1:/tmp/cvs-serv32312/test/regression Modified Files: pgresult.py Log Message: 04SEP2001 bga Expanded the test cases. Still more to do. Index: pgresult.py =================================================================== RCS file: /cvsroot/pypgsql/pypgsql/test/regression/pgresult.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pgresult.py 2001/09/04 03:38:51 1.1 --- pgresult.py 2001/09/05 04:53:01 1.2 *************** *** 34,37 **** --- 34,38 ---- # Date Ini Description | # --------- --- ------------------------------------------------------- | + # 04SEP2001 bga Expanded the test cases. Still more to do. | # 02SEP2001 bga Initial release by Billy G. Allie. | #-----------------------------------------------------------------------+ *************** *** 45,52 **** version = ((((version[0] * 100) + version[1]) * 100) + version[2]) ! class PgResultTestCases(unittest.TestCase): def setUp(self): self.cnx = libpq.PQconnectdb('dbname=pypgsql') self.vstr = "%(major)d.%(minor)d" % self.cnx.version.__dict__ def tearDown(self): --- 46,58 ---- version = ((((version[0] * 100) + version[1]) * 100) + version[2]) ! class PgResultMethodTestCases(unittest.TestCase): def setUp(self): self.cnx = libpq.PQconnectdb('dbname=pypgsql') self.vstr = "%(major)d.%(minor)d" % self.cnx.version.__dict__ + self.members = ['binaryTuples', 'cmdStatus', 'cmdTuples', 'nfields', + 'ntuples', 'oidValue', 'resultErrorMessage', + 'resultStatus', 'resultType'] + self.methods = ['clear', 'fname', 'fnumber', 'fsize', 'ftype', + 'getisnull', 'getlength', 'getvalue'] def tearDown(self): *************** *** 59,71 **** def CheckForMembers(self, res): ! for i in ['binaryTuples', 'cmdStatus', 'cmdTuples', 'nfields', ! 'ntuples', 'oidValue', 'resultErrorMessage', 'resultStatus', ! 'resultType']: self.assert_(i in res.__members__, 'PgResult is missing member "%s".' % i) def CheckForMethods(self, res): ! for i in ['clear', 'fname', 'fnumber', 'fsize', 'ftype', 'getisnull', ! 'getlength', 'getvalue']: self.assert_(i in res.__methods__, 'PgResult is missing method "%s".' % i) --- 65,81 ---- def CheckForMembers(self, res): ! for i in self.members: self.assert_(i in res.__members__, 'PgResult is missing member "%s".' % i) + def CheckMemberValues(self, res, expected): + for i in range(len(self.members)): + exec 'v = res.%s' % self.members[i] + self.assertEquals(v, expected[i], + 'PgResult.%s is %s, it should be %s!' % \ + (self.members[i], v, expected[i])) + def CheckForMethods(self, res): ! for i in self.methods: self.assert_(i in res.__methods__, 'PgResult is missing method "%s".' % i) *************** *** 74,95 **** 'PgResult method %s() is not callable.' % i) def CheckPgResult(self): ! res = self.cnx.query("""select * from pg_database ! where datname = 'pypgsql'"""); self.CheckForMembers(res) self.CheckForMethods(res) ! self.assertEquals(res.binaryTuples, 0, ! "PgResult.binaryTuples is %d, should be 0." % res.binaryTuples) ! self.assertEquals(res.cmdStatus, 'SELECT', ! "PgResult.cmdStatus is '%s', should be 'SELECT'." % res.cmdStatus) ! self.assertEquals(res.cmdTuples, None, ! "PgResult.cmdTuples is %s, should be None." % res.cmdTuples) ! self.assertEquals(res.ntuples, 1, ! "PgResult.ntuples is %d, should be 1." % res.ntuples) ! self.assertEquals(res.nfields, 7, ! "PgResult.nfields is %d, should be 1." % res.nfields) ! self.assertEquals(res.resultErrorMessage, None, ! "PgResult.resultErrorMessage is '%s', should be None." % \ ! res.resultErrorMessage) def CheckSelectOfNonPrintableString(self): --- 84,228 ---- 'PgResult method %s() is not callable.' % i) + def CheckDropPgResult(self): + query = "drop table pgresult_test" + res = self.cnx.query(query) + self.CheckForMembers(res) + self.CheckForMethods(res) + expected = [0, 'DROP', None, 0, 0, None, None, 1, 2 ] + self.CheckMemberValues(res, expected) + # Try to drop the table again. This should raise an execption. + self.failUnlessRaises(libpq.OperationalError, self.cnx.query, query) + + # def CheckDeclareBinaryPgResult(self): + # res = self.cnx.query("""declare pgres_bin_cursor cursor as + # select * from pgresult_test"""); + # self.CheckForMembers(res) + # self.CheckForMethods(res) + # self.assertEquals(res.binaryTuples, 0, + # "PgResult.binaryTuples is %d, should be 0." % res.binaryTuples) + # self.assertEquals(res.cmdStatus, 'SELECT', + # "PgResult.cmdStatus is '%s', should be 'SELECT'." % res.cmdStatus) + # self.assertEquals(res.cmdTuples, None, + # "PgResult.cmdTuples is %s, should be None." % res.cmdTuples) + # self.assertEquals(res.ntuples, 1, + # "PgResult.ntuples is %d, should be 1." % res.ntuples) + # self.assertEquals(res.nfields, 7, + # "PgResult.nfields is %d, should be 1." % res.nfields) + # self.assertEquals(res.resultErrorMessage, None, + # "PgResult.resultErrorMessage is '%s', should be None." % \ + # res.resultErrorMessage) + # + # def CheckFetchBinaryPgResult(self): + # res = self.cnx.query("fetch 1 from pgres_bin_cursor"); + # self.CheckForMembers(res) + # self.CheckForMethods(res) + # expected = [0, 'SELECT', None, 1, 7, None, 2, 1 ] + # + # def CheckDeclarePgResult(self): + # res = self.cnx.query("""declare pgres_curosr cursor as + # select * from pgresult_test"""); + # self.CheckForMembers(res) + # self.CheckForMethods(res) + # self.assertEquals(res.binaryTuples, 0, + # "PgResult.binaryTuples is %d, should be 0." % res.binaryTuples) + # self.assertEquals(res.cmdStatus, 'SELECT', + # "PgResult.cmdStatus is '%s', should be 'SELECT'." % res.cmdStatus) + # self.assertEquals(res.cmdTuples, None, + # "PgResult.cmdTuples is %s, should be None." % res.cmdTuples) + # self.assertEquals(res.ntuples, 1, + # "PgResult.ntuples is %d, should be 1." % res.ntuples) + # self.assertEquals(res.nfields, 7, + # "PgResult.nfields is %d, should be 1." % res.nfields) + # self.assertEquals(res.resultErrorMessage, None, + # "PgResult.resultErrorMessage is '%s', should be None." % \ + # res.resultErrorMessage) + # + # def CheckFetchPgResult(self): + # res = self.cnx.query("""select * from pg_database + # where datname = 'pypgsql'"""); + # self.CheckForMembers(res) + # self.CheckForMethods(res) + # self.assertEquals(res.binaryTuples, 0, + # "PgResult.binaryTuples is %d, should be 0." % res.binaryTuples) + # self.assertEquals(res.cmdStatus, 'SELECT', + # "PgResult.cmdStatus is '%s', should be 'SELECT'." % res.cmdStatus) + # self.assertEquals(res.cmdTuples, None, + # "PgResult.cmdTuples is %s, should be None." % res.cmdTuples) + # self.assertEquals(res.ntuples, 1, + # "PgResult.ntuples is %d, should be 1." % res.ntuples) + # self.assertEquals(res.nfields, 7, + # "PgResult.nfields is %d, should be 1." % res.nfields) + # self.assertEquals(res.resultErrorMessage, None, + # "PgResult.resultErrorMessage is '%s', should be None." % \ + # res.resultErrorMessage) + # + # def CheckUpdatePgResult(self): + # res = self.cnx.query("select * from pgresult_test") + # self.CheckForMembers(res) + # self.CheckForMethods(res) + # self.assertEquals(res.binaryTuples, 0, + # "PgResult.binaryTuples is %d, should be 0." % res.binaryTuples) + # self.assertEquals(res.cmdStatus, 'SELECT', + # "PgResult.cmdStatus is '%s', should be 'SELECT'." % res.cmdStatus) + # self.assertEquals(res.cmdTuples, None, + # "PgResult.cmdTuples is %s, should be None." % res.cmdTuples) + # self.assertEquals(res.ntuples, 1, + # "PgResult.ntuples is %d, should be 1." % res.ntuples) + # self.assertEquals(res.nfields, 7, + # "PgResult.nfields is %d, should be 1." % res.nfields) + # self.assertEquals(res.resultErrorMessage, None, + # "PgResult.resultErrorMessage is '%s', should be None." % \ + # res.resultErrorMessage) + # + def CheckInsertPgResult(self): + res = self.cnx.query("""insert into pgresult_test + values (1, 'This is a test (1)')"""); + self.CheckForMembers(res) + self.CheckForMethods(res) + # The PgResult object's members can't be tested with CheckMemberValues() + # directly. Set up things so we can call CheckMember Values() + cs = 'INSERT %s %s' % (res.oidValue, res.cmdTuples) + expected = [0, cs, 1, 0, 0, res.oidValue, None, 1, 3 ] + self.assert_(res.oidValue != None, + "PgResult.oidValue is None, it shouldn't be None.") + self.CheckMemberValues(res, expected) + res = self.cnx.query("""insert into pgresult_test + values (2, 'This is a test (2)')"""); + res = self.cnx.query("""insert into pgresult_test + values (3, 'This is a test (3)')"""); + res = self.cnx.query("""insert into pgresult_test + values (4, 'This is a test (4)')"""); + + def CheckCreatePgResult(self): + query = "create table pgresult_test(f1 int, f2 text)" + res = self.cnx.query(query) + self.CheckForMembers(res) + self.CheckForMethods(res) + expected = [0, 'CREATE', None, 0, 0, None, None, 1, 2 ] + self.CheckMemberValues(res, expected) + # Try to create the table again. This should raise an execption. + self.failUnlessRaises(libpq.OperationalError, self.cnx.query, query) + def CheckPgResult(self): ! res = self.cnx.query("select * from pg_database limit 3") self.CheckForMembers(res) self.CheckForMethods(res) ! expected = [0, 'SELECT', None, 7, 3, None, None, 2, 1 ] ! self.CheckMemberValues(res, expected) ! ! class PgResultTestCases(unittest.TestCase): ! def setUp(self): ! self.cnx = libpq.PQconnectdb('dbname=pypgsql') ! self.vstr = "%(major)d.%(minor)d" % self.cnx.version.__dict__ ! self.cnx.query('begin work') ! ! def tearDown(self): ! try: ! self.cnx.query('rollback') ! self.cnx.finish() ! except AttributeError: ! pass ! except libpq.InterfaceError: ! pass def CheckSelectOfNonPrintableString(self): *************** *** 109,113 **** if __name__ == "__main__": TestSuite = unittest.TestSuite() ! TestSuite.addTest(PgResultTestCases("CheckPgResult")) TestSuite.addTest(PgResultTestCases("CheckSelectOfNonPrintableString")) --- 242,253 ---- if __name__ == "__main__": TestSuite = unittest.TestSuite() ! TestSuite.addTest(PgResultMethodTestCases("CheckPgResult")) ! TestSuite.addTest(PgResultMethodTestCases("CheckCreatePgResult")) ! TestSuite.addTest(PgResultMethodTestCases("CheckInsertPgResult")) ! #TestSuite.addTest(PgResultMethodTestCases("CheckSelectPgResult")) ! #TestSuite.addTest(PgResultMethodTestCases("CheckUpdatePgResult")) ! #TestSuite.addTest(PgResultMethodTestCases("CheckDeclarePgResult")) ! #TestSuite.addTest(PgResultMethodTestCases("CheckFetchPgResult")) ! TestSuite.addTest(PgResultMethodTestCases("CheckDropPgResult")) TestSuite.addTest(PgResultTestCases("CheckSelectOfNonPrintableString")) |