From 9bf185f6a9b868275c762d032cfb09c544ef7cdb Mon Sep 17 00:00:00 2001 From: Federico Di Gregorio Date: Thu, 13 Jan 2005 16:50:29 +0000 Subject: [PATCH] Added unit test for DictCursor. --- tests/extras_dictcursor.py | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/extras_dictcursor.py diff --git a/tests/extras_dictcursor.py b/tests/extras_dictcursor.py new file mode 100644 index 00000000..1b777677 --- /dev/null +++ b/tests/extras_dictcursor.py @@ -0,0 +1,47 @@ +# extras_dictcursor - test if DictCursor extension class works +# +# Copyright (C) 2004 Federico Di Gregorio +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. + +import psycopg +import psycopg.extras +from unittest import TestCase, TestSuite, main + + +class ExtrasDictCursorTests(TestCase): + """Test if DictCursor extension class works.""" + + def setUp(self): + self.conn = psycopg.connect("dbname=test") + curs = self.conn.cursor() + curs.execute("CREATE TABLE ExtrasDictCursorTests (foo text)") + + def testDictCursor(self): + curs = self.conn.cursor(cursor_factory=psycopg.extras.DictCursor) + curs.execute("INSERT INTO ExtrasDictCursorTests VALUES ('bar')") + curs.execute("SELECT * FROM ExtrasDictCursorTests") + row = curs.fetchone() + self.failUnless(row['foo'] == 'bar') + self.failUnless(row[0] == 'bar') + +class ExtrasDictCursorSuite(TestSuite): + """Build a suite of all tests.""" + + def __init__(self): + """Build a list of tests.""" + self.tests = [x for x in dir(ExtrasDictCursorTests) + if x.startswith('test')] + TestSuite.__init__(self, map(TestModule, self.tests)) + + +if __name__ == "__main__": + main()