Mercurial > p > mysql-python > mysqldb-2
annotate tests/test_MySQLdb_dbapi20.py @ 18:d55bfb1a4701 MySQLdb
Tons of changes from major refactoring/cleanup. This is all really broken
right now. In particular, all results are returned as strings.
author | adustman |
---|---|
date | Fri, 14 Mar 2008 23:06:29 +0000 |
parents | |
children |
rev | line source |
---|---|
18
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
1 #!/usr/bin/env python |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
2 import dbapi20 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
3 import unittest |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
4 import MySQLdb |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
5 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
6 class test_MySQLdb(dbapi20.DatabaseAPI20Test): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
7 driver = MySQLdb |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
8 connect_args = () |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
9 connect_kw_args = dict(db='test', |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
10 read_default_file='~/.my.cnf', |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
11 charset='utf8', |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
12 sql_mode="ANSI,STRICT_TRANS_TABLES,TRADITIONAL") |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
13 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
14 def test_setoutputsize(self): pass |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
15 def test_setoutputsize_basic(self): pass |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
16 def test_nextset(self): pass |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
17 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
18 """The tests on fetchone and fetchall and rowcount bogusly |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
19 test for an exception if the statement cannot return a |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
20 result set. MySQL always returns a result set; it's just that |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
21 some things return empty result sets.""" |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
22 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
23 def test_fetchall(self): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
24 con = self._connect() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
25 try: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
26 cur = con.cursor() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
27 # cursor.fetchall should raise an Error if called |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
28 # without executing a query that may return rows (such |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
29 # as a select) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
30 self.assertRaises(self.driver.Error, cur.fetchall) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
31 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
32 self.executeDDL1(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
33 for sql in self._populate(): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
34 cur.execute(sql) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
35 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
36 # cursor.fetchall should raise an Error if called |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
37 # after executing a a statement that cannot return rows |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
38 ## self.assertRaises(self.driver.Error,cur.fetchall) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
39 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
40 cur.execute('select name from %sbooze' % self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
41 rows = cur.fetchall() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
42 self.failUnless(cur.rowcount in (-1,len(self.samples))) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
43 self.assertEqual(len(rows),len(self.samples), |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
44 'cursor.fetchall did not retrieve all rows' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
45 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
46 rows = [r[0] for r in rows] |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
47 rows.sort() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
48 for i in range(0,len(self.samples)): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
49 self.assertEqual(rows[i],self.samples[i], |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
50 'cursor.fetchall retrieved incorrect rows' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
51 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
52 rows = cur.fetchall() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
53 self.assertEqual( |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
54 len(rows),0, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
55 'cursor.fetchall should return an empty list if called ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
56 'after the whole result set has been fetched' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
57 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
58 self.failUnless(cur.rowcount in (-1,len(self.samples))) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
59 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
60 self.executeDDL2(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
61 cur.execute('select name from %sbarflys' % self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
62 rows = cur.fetchall() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
63 self.failUnless(cur.rowcount in (-1,0)) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
64 self.assertEqual(len(rows),0, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
65 'cursor.fetchall should return an empty list if ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
66 'a select query returns no rows' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
67 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
68 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
69 finally: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
70 con.close() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
71 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
72 def test_fetchone(self): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
73 con = self._connect() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
74 try: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
75 cur = con.cursor() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
76 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
77 # cursor.fetchone should raise an Error if called before |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
78 # executing a select-type query |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
79 self.assertRaises(self.driver.Error,cur.fetchone) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
80 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
81 # cursor.fetchone should raise an Error if called after |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
82 # executing a query that cannnot return rows |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
83 self.executeDDL1(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
84 ## self.assertRaises(self.driver.Error,cur.fetchone) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
85 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
86 cur.execute('select name from %sbooze' % self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
87 self.assertEqual(cur.fetchone(),None, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
88 'cursor.fetchone should return None if a query retrieves ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
89 'no rows' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
90 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
91 self.failUnless(cur.rowcount in (-1,0)) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
92 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
93 # cursor.fetchone should raise an Error if called after |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
94 # executing a query that cannnot return rows |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
95 cur.execute("insert into %sbooze values ('Victoria Bitter')" % ( |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
96 self.table_prefix |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
97 )) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
98 ## self.assertRaises(self.driver.Error,cur.fetchone) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
99 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
100 cur.execute('select name from %sbooze' % self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
101 r = cur.fetchone() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
102 self.assertEqual(len(r),1, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
103 'cursor.fetchone should have retrieved a single row' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
104 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
105 self.assertEqual(r[0],'Victoria Bitter', |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
106 'cursor.fetchone retrieved incorrect data' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
107 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
108 ## self.assertEqual(cur.fetchone(),None, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
109 ## 'cursor.fetchone should return None if no more rows available' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
110 ## ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
111 self.failUnless(cur.rowcount in (-1,1)) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
112 finally: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
113 con.close() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
114 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
115 # Same complaint as for fetchall and fetchone |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
116 def test_rowcount(self): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
117 con = self._connect() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
118 try: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
119 cur = con.cursor() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
120 self.executeDDL1(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
121 ## self.assertEqual(cur.rowcount,-1, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
122 ## 'cursor.rowcount should be -1 after executing no-result ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
123 ## 'statements' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
124 ## ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
125 cur.execute("insert into %sbooze values ('Victoria Bitter')" % ( |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
126 self.table_prefix |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
127 )) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
128 ## self.failUnless(cur.rowcount in (-1,1), |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
129 ## 'cursor.rowcount should == number or rows inserted, or ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
130 ## 'set to -1 after executing an insert statement' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
131 ## ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
132 cur.execute("select name from %sbooze" % self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
133 self.failUnless(cur.rowcount in (-1,1), |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
134 'cursor.rowcount should == number of rows returned, or ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
135 'set to -1 after executing a select statement' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
136 ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
137 self.executeDDL2(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
138 ## self.assertEqual(cur.rowcount,-1, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
139 ## 'cursor.rowcount not being reset to -1 after executing ' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
140 ## 'no-result statements' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
141 ## ) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
142 finally: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
143 con.close() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
144 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
145 def test_callproc(self): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
146 pass # performed in test_MySQL_capabilities |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
147 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
148 def help_nextset_setUp(self,cur): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
149 ''' Should create a procedure called deleteme |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
150 that returns two result sets, first the |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
151 number of rows in booze then "name from booze" |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
152 ''' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
153 sql=""" |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
154 create procedure deleteme() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
155 begin |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
156 select count(*) from %(tp)sbooze; |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
157 select name from %(tp)sbooze; |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
158 end |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
159 """ % dict(tp=self.table_prefix) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
160 cur.execute(sql) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
161 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
162 def help_nextset_tearDown(self,cur): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
163 'If cleaning up is needed after nextSetTest' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
164 cur.execute("drop procedure deleteme") |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
165 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
166 def test_nextset(self): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
167 from warnings import warn |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
168 con = self._connect() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
169 try: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
170 cur = con.cursor() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
171 if not hasattr(cur,'nextset'): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
172 return |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
173 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
174 try: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
175 self.executeDDL1(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
176 sql=self._populate() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
177 for sql in self._populate(): |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
178 cur.execute(sql) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
179 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
180 self.help_nextset_setUp(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
181 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
182 cur.callproc('deleteme') |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
183 numberofrows=cur.fetchone() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
184 assert numberofrows[0]== len(self.samples) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
185 assert cur.nextset() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
186 names=cur.fetchall() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
187 assert len(names) == len(self.samples) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
188 s=cur.nextset() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
189 if s: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
190 empty = cur.fetchall() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
191 self.assertEquals(len(empty), 0, |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
192 "non-empty result set after other result sets") |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
193 #warn("Incompatibility: MySQL returns an empty result set for the CALL itself", |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
194 # Warning) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
195 #assert s == None,'No more return sets, should return None' |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
196 finally: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
197 self.help_nextset_tearDown(cur) |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
198 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
199 finally: |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
200 con.close() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
201 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
202 |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
203 if __name__ == '__main__': |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
204 unittest.main() |
d55bfb1a4701
Tons of changes from major refactoring/cleanup. This is all really broken
adustman
parents:
diff
changeset
|
205 print '''"Huh-huh, he said 'unit'." -- Butthead''' |