test_dtcd_cache_only.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. import pytest
  2. import pymysql
  3. def test_insert_with_single_quotes():
  4. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  5. cursor = db.cursor()
  6. sql = "insert into opensource(uid, name) values(1, 'hello')"
  7. cursor.execute(sql)
  8. db.commit()
  9. rowsaffected = cursor.rowcount
  10. print("affected rows: %s" % (rowsaffected))
  11. cursor.close()
  12. db.close()
  13. assert rowsaffected == 1
  14. def test_select():
  15. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  16. cursor = db.cursor()
  17. sql = "select uid, name from opensource where uid = 1"
  18. cursor.execute(sql)
  19. results = cursor.fetchall()
  20. assert len(results) == 1
  21. for row in results:
  22. uid = row[0]
  23. name = row[1]
  24. print("uid=%s, name=%s" % (uid, name))
  25. assert uid == 1
  26. assert name == "hello"
  27. db.close()
  28. def test_update():
  29. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  30. cursor = db.cursor()
  31. sql = "select uid, name from opensource where uid = 1"
  32. cursor.execute(sql)
  33. results = cursor.fetchall()
  34. assert len(results) == 1
  35. for row in results:
  36. uid = row[0]
  37. name = row[1]
  38. print("uid=%s, name=%s" % (uid, name))
  39. assert uid == 1
  40. assert name == "hello"
  41. cursor.close()
  42. cursor = db.cursor()
  43. sql = "update opensource set name = 'Lee' where uid = 1"
  44. rowsaffected = cursor.execute(sql)
  45. assert rowsaffected == 1
  46. #sql = "update opensource set name = \"Lee3\" where uid = 1"
  47. #rowsaffected = cursor.execute(sql)
  48. #assert rowsaffected == 1
  49. #sql = "update opensource set name = `Lee` where uid = 1"
  50. #rowsaffected = cursor.execute(sql)
  51. #assert rowsaffected == 0
  52. #sql = "update opensource set name = \"Lee4\" where uid = '1'"
  53. #rowsaffected = cursor.execute(sql)
  54. #assert rowsaffected == 1
  55. #sql = "update opensource set name = \"Lee\" where uid = \"1\""
  56. #rowsaffected = cursor.execute(sql)
  57. #assert rowsaffected == 1
  58. #sql = "update opensource set name = 'Lee2' where `uid` = 1"
  59. #rowsaffected = cursor.execute(sql)
  60. #assert rowsaffected == 1
  61. #sql = "update opensource set name = \"Lee\" where `uid` = 1"
  62. #rowsaffected = cursor.execute(sql)
  63. #assert rowsaffected == 1
  64. #sql = "update opensource set `name` = \"Lee2\" where `uid` = 1"
  65. #rowsaffected = cursor.execute(sql)
  66. #assert rowsaffected == 1
  67. #sql = "update opensource set `name` = \"Lee\" where `uid` = gh"
  68. #rowsaffected = cursor.execute(sql)
  69. #assert rowsaffected == 0
  70. #sql = "update opensource set `name` = Lee2 where `uid` = 1"
  71. #rowsaffected = cursor.execute(sql)
  72. #assert rowsaffected == 0
  73. db.commit()
  74. cursor.close()
  75. cursor = db.cursor()
  76. sql = "select uid, name from opensource where uid = 1"
  77. cursor.execute(sql)
  78. results = cursor.fetchall()
  79. assert len(results) == 1
  80. for row in results:
  81. uid = row[0]
  82. name = row[1]
  83. print("uid=%s, name=%s" % (uid, name))
  84. assert uid == 1
  85. assert name == "Lee"
  86. cursor.close()
  87. db.close()
  88. def test_delete():
  89. print("----delete----")
  90. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  91. cursor = db.cursor()
  92. sql = "select uid, name from opensource where uid = 1"
  93. cursor.execute(sql)
  94. results = cursor.fetchall()
  95. assert len(results) == 1
  96. cursor.close()
  97. cursor = db.cursor()
  98. sql = "delete from opensource where uid = 1"
  99. cursor.execute(sql)
  100. db.commit()
  101. rowsaffected = cursor.rowcount
  102. print("affected rows: %s" % (rowsaffected))
  103. assert rowsaffected == 1
  104. cursor.close()
  105. cursor = db.cursor()
  106. sql = "select uid, name from opensource where uid = 1"
  107. cursor.execute(sql)
  108. results = cursor.fetchall()
  109. assert len(results) == 0
  110. cursor.close()
  111. db.close()
  112. '''
  113. def test_check_tablename():
  114. '''
  115. def test_insert_remove_where_cluster():
  116. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  117. cursor = db.cursor()
  118. sql = "insert into opensource(uid, name) values(1, 'hello')"
  119. cursor.execute(sql)
  120. db.commit()
  121. rowsaffected = cursor.rowcount
  122. print("affected rows: %s" % (rowsaffected))
  123. cursor.close()
  124. db.close()
  125. assert rowsaffected == 1
  126. '''
  127. def test_insert_remove_where_cluster_without_specify_key():
  128. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  129. cursor = db.cursor()
  130. sql = "insert into opensource values(1, 'Jack', 'Shanghai', 1, 18)"
  131. cursor.execute(sql)
  132. db.commit()
  133. rowsaffected = cursor.rowcount
  134. print("affected rows: %s" % (rowsaffected))
  135. cursor.close()
  136. db.close()
  137. assert rowsaffected == 1
  138. '''
  139. def test_select_limit():
  140. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  141. cursor = db.cursor()
  142. sql = "insert into opensource(uid,name,city,sex,age) values(1, 'Jack', 'Shanghai', 1, 18)"
  143. cursor.execute(sql)
  144. db.commit()
  145. sql = "select uid, name from opensource where uid = 1 limit 2"
  146. cursor.execute(sql)
  147. results = cursor.fetchall()
  148. assert len(results) == 2
  149. cursor = db.cursor()
  150. sql = "select uid, name from opensource where uid = 1 limit 1"
  151. cursor.execute(sql)
  152. results = cursor.fetchall()
  153. assert len(results) == 1
  154. cursor = db.cursor()
  155. sql = "insert into opensource(uid,name,city,sex,age) values(1, 'Jack', 'Shanghai', 1, 19)"
  156. cursor.execute(sql)
  157. db.commit()
  158. cursor = db.cursor()
  159. sql = "select uid, name,city,sex,age from opensource where uid = 1 limit 1,3"
  160. cursor.execute(sql)
  161. results = cursor.fetchall()
  162. assert len(results) == 2
  163. assert results[0][4] == 18
  164. assert results[1][4] == 19
  165. db.close()
  166. def test_insert_automated_conversion():
  167. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  168. cursor = db.cursor()
  169. #name num to string
  170. sql = "insert into opensource(uid,name,city,sex,age) values(1, 123, 'Shanghai', 1, 18)"
  171. insert = cursor.execute(sql)
  172. assert insert == 1
  173. #name num to string
  174. sql = "insert into opensource(uid,name,city,sex,age) values(1, 123a, 'Shanghai', 1, 18)"
  175. insert = cursor.execute(sql)
  176. assert insert == 0
  177. #name num(float) to string
  178. sql = "insert into opensource(uid,name,city,sex,age) values(1, 123.3, 'Shanghai', 1, 18)"
  179. insert = cursor.execute(sql)
  180. assert insert == 1
  181. #name string to num
  182. sql = "insert into opensource(uid,name,city,sex,age) values(1, 'jack', 'Shanghai', 1, '18')"
  183. insert = cursor.execute(sql)
  184. assert insert == 1
  185. #name string to num, error
  186. sql = "insert into opensource(uid,name,city,sex,age) values(1, 'jack', 'Shanghai', 1, '18a')"
  187. insert = cursor.execute(sql)
  188. assert insert == 0
  189. sql = "insert into opensource(uid,name,city,sex,age) values(1, 'jack', Shanghai, 1, '18a')"
  190. insert = cursor.execute(sql)
  191. assert insert == 0
  192. db.commit()
  193. db.close()
  194. def test_insert_with_double_quotes():
  195. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  196. cursor = db.cursor()
  197. sql = "insert into opensource(uid, name) values(33, \"hello\")"
  198. cursor.execute(sql)
  199. db.commit()
  200. rowsaffected = cursor.rowcount
  201. cursor.close()
  202. db.close()
  203. assert rowsaffected == 1
  204. def test_insert_with_double_quotes():
  205. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  206. cursor = db.cursor()
  207. sql = "insert into opensource(uid, name) values(33, \"hello\")"
  208. rowsaffected = cursor.execute(sql)
  209. db.commit()
  210. cursor.close()
  211. db.close()
  212. assert rowsaffected == 1
  213. def test_insert_with_grave():
  214. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  215. cursor = db.cursor()
  216. sql = "insert into `opensource`(uid, name) values(33, 'hello')"
  217. rowsaffected = cursor.execute(sql)
  218. assert rowsaffected == 1
  219. #sql = "insert into opensource(`uid`, name) values(33, 'hello')"
  220. #rowsaffected = cursor.execute(sql)
  221. #assert rowsaffected == 1
  222. #sql = "insert into opensource(`uid`, `name`) values(33, 'hello')"
  223. #rowsaffected = cursor.execute(sql)
  224. #assert rowsaffected == 1
  225. #sql = "insert into `opensource`(`uid`, `name`) values(33, 'hello')"
  226. #rowsaffected = cursor.execute(sql)
  227. #assert rowsaffected == 1
  228. sql = "insert into opensource(uid, name) values(33, `hello`)"
  229. rowsaffected = cursor.execute(sql)
  230. assert rowsaffected == 0
  231. sql = "insert into opensource(uid, name) values(33, `123`)"
  232. rowsaffected = cursor.execute(sql)
  233. assert rowsaffected == 0
  234. #sql = "insert into \"opensource\"(uid, name) values(33, 'hello')"
  235. #rowsaffected = cursor.execute(sql)
  236. #assert rowsaffected == 1
  237. #sql = "insert into 'opensource'(uid, name) values(33, 'hello')"
  238. #rowsaffected = cursor.execute(sql)
  239. #assert rowsaffected == 1
  240. db.commit()
  241. cursor.close()
  242. db.close()
  243. def test_insert_with_set_keyword():
  244. db = pymysql.connect(host='127.0.0.1', port=20015, user='test', password='test', database='test')
  245. cursor = db.cursor()
  246. sql = "insert into opensource set uid = 33, name = 'hello'"
  247. rowsaffected = cursor.execute(sql)
  248. assert rowsaffected == 1
  249. #sql = "insert into opensource set `uid` = 33, `name` = 'hello'"
  250. #rowsaffected = cursor.execute(sql)
  251. #assert rowsaffected == 1
  252. #sql = "insert into opensource set `uid` = 33, `name` = '12312'"
  253. #rowsaffected = cursor.execute(sql)
  254. #assert rowsaffected == 1
  255. #sql = "insert into opensource set `uid` = 33, `name` = \"12312\""
  256. #rowsaffected = cursor.execute(sql)
  257. #assert rowsaffected == 1
  258. sql = "insert into opensource set uid = 33, name = 'hello'"
  259. rowsaffected = cursor.execute(sql)
  260. assert rowsaffected == 1
  261. sql = "insert into opensource set uid = 33, name = '12312'"
  262. rowsaffected = cursor.execute(sql)
  263. assert rowsaffected == 1
  264. sql = "insert into opensource set uid = 33, name = \"12312waefoioiwa\""
  265. rowsaffected = cursor.execute(sql)
  266. assert rowsaffected == 1
  267. sql = "insert into opensource set uid = 33, name = \"waefoioiwawaefwa\""
  268. rowsaffected = cursor.execute(sql)
  269. assert rowsaffected == 1
  270. sql = "insert into opensource set uid = 33, name = 123waefoioiwawaefwa"
  271. rowsaffected = cursor.execute(sql)
  272. assert rowsaffected == 0
  273. sql = "insert into opensource set uid = 33, name = \"12312\""
  274. rowsaffected = cursor.execute(sql)
  275. assert rowsaffected == 1
  276. db.commit()
  277. cursor.close()
  278. db.close()