test_00_base.py 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. # -*- coding: utf-8 -*-
  2. """Model unit tests."""
  3. from copy import deepcopy
  4. import pytest
  5. from walle.model.user import MenuModel
  6. from walle.model.user import UserModel
  7. from werkzeug.security import generate_password_hash
  8. from walle.service.rbac.role import *
  9. user_data_login = {
  10. 'username': u'wushuiyong',
  11. 'email': u'wushuiyong@walle-web.io',
  12. 'password': u'WU123shuiyong',
  13. }
  14. space_base = {
  15. 'name': u'walle-2.0',
  16. 'user_id': u'1',
  17. }
  18. @pytest.mark.usefixtures('db')
  19. class TestFoo:
  20. """User tests."""
  21. def test_get_by_id(self):
  22. """Get user by ID."""
  23. pass
  24. # user = Foo(username='testuser', email='wushuiyong@mail.com')
  25. # user.save()
  26. # print(user.id)
  27. #
  28. # retrieved = Foo.get_by_id(user.id)
  29. # assert retrieved == user
  30. class TestAccess:
  31. def from_data(self):
  32. return []
  33. def test_add(self):
  34. access_list = [
  35. {
  36. "archive": 0,
  37. "created_at": u"2017-06-11 23:11:38",
  38. "url": u"xx.yy.zz",
  39. "visible": 1,
  40. "icon": u"leaf",
  41. "id": 1,
  42. "name_cn": u"用户中心",
  43. "name_en": u"",
  44. "pid": 0,
  45. "sequence": 10001,
  46. "type": u"module",
  47. "updated_at": u"2017-06-12 00:15:29"
  48. },
  49. {
  50. "archive": 0,
  51. "created_at": u"2017-06-11 23:11:52",
  52. "url": u"xx.yy.zz",
  53. "visible": 1,
  54. "icon": u"leaf",
  55. "id": 2,
  56. "name_cn": u"配置中心",
  57. "name_en": u"",
  58. "pid": 0,
  59. "sequence": 10002,
  60. "type": u"module",
  61. "updated_at": u"2017-06-12 00:15:29"
  62. },
  63. {
  64. "archive": 0,
  65. "created_at": u"2017-06-11 23:12:45",
  66. "url": u"xx.yy.zz",
  67. "visible": 1,
  68. "icon": u"leaf",
  69. "id": 3,
  70. "name_cn": u"上线单",
  71. "name_en": u"",
  72. "pid": 0,
  73. "sequence": 10003,
  74. "type": u"module",
  75. "updated_at": u"2017-06-12 00:15:29"
  76. },
  77. {
  78. "archive": 0,
  79. "created_at": u"2017-06-11 23:13:51",
  80. "url": u"xx.yy.zz",
  81. "visible": 1,
  82. "icon": u"leaf",
  83. "id": 11,
  84. "name_cn": u"用户管理",
  85. "name_en": u"user",
  86. "pid": 1,
  87. "sequence": 10101,
  88. "type": u"controller",
  89. "updated_at": u"2017-06-14 10:42:45"
  90. },
  91. {
  92. "archive": 0,
  93. "created_at": u"2017-06-11 23:14:11",
  94. "url": u"xx.yy.zz",
  95. "visible": 1,
  96. "icon": u"leaf",
  97. "id": 12,
  98. "name_cn": u"用户组",
  99. "name_en": u"group",
  100. "pid": 1,
  101. "sequence": 10102,
  102. "type": u"controller",
  103. "updated_at": u"2017-06-14 10:42:48"
  104. },
  105. {
  106. "archive": 0,
  107. "created_at": u"2017-06-11 23:14:44",
  108. "url": u"xx.yy.zz",
  109. "visible": 1,
  110. "icon": u"leaf",
  111. "id": 13,
  112. "name_cn": u"角色",
  113. "name_en": u"role",
  114. "pid": 1,
  115. "sequence": 10103,
  116. "type": u"controller",
  117. "updated_at": u"2017-06-14 10:42:52"
  118. },
  119. {
  120. "archive": 0,
  121. "created_at": u"2017-06-11 23:15:30",
  122. "url": u"xx.yy.zz",
  123. "visible": 1,
  124. "icon": u"leaf",
  125. "id": 14,
  126. "name_cn": u"环境管理",
  127. "name_en": u"environment",
  128. "pid": 2,
  129. "sequence": 10201,
  130. "type": u"controller",
  131. "updated_at": u"2017-06-14 10:42:58"
  132. },
  133. {
  134. "archive": 0,
  135. "created_at": u"2017-06-11 23:15:51",
  136. "url": u"xx.yy.zz",
  137. "visible": 1,
  138. "icon": u"leaf",
  139. "id": 15,
  140. "name_cn": u"服务器管理",
  141. "name_en": u"server",
  142. "pid": 2,
  143. "sequence": 10202,
  144. "type": u"controller",
  145. "updated_at": u"2017-06-14 10:43:01"
  146. },
  147. {
  148. "archive": 0,
  149. "created_at": u"2017-06-11 23:16:18",
  150. "url": u"xx.yy.zz",
  151. "visible": 1,
  152. "icon": u"leaf",
  153. "id": 16,
  154. "name_cn": u"项目管理",
  155. "name_en": u"project",
  156. "pid": 2,
  157. "sequence": 10203,
  158. "type": u"controller",
  159. "updated_at": u"2017-06-14 10:43:07"
  160. },
  161. {
  162. "archive": 0,
  163. "created_at": u"2017-06-11 23:17:12",
  164. "url": u"xx.yy.zz",
  165. "visible": 1,
  166. "icon": u"leaf",
  167. "id": 101,
  168. "name_cn": u"查看",
  169. "name_en": u"get",
  170. "pid": 11,
  171. "sequence": 11101,
  172. "type": u"action",
  173. "updated_at": u"2017-06-14 10:43:09"
  174. },
  175. {
  176. "archive": 0,
  177. "created_at": u"2017-06-11 23:17:26",
  178. "url": u"xx.yy.zz",
  179. "visible": 1,
  180. "icon": u"leaf",
  181. "id": 102,
  182. "name_cn": u"修改",
  183. "name_en": u"put",
  184. "pid": 11,
  185. "sequence": 11102,
  186. "type": u"action",
  187. "updated_at": u"2017-06-14 10:43:17"
  188. },
  189. {
  190. "archive": 0,
  191. "created_at": u"2017-06-11 23:17:59",
  192. "url": u"xx.yy.zz",
  193. "visible": 1,
  194. "icon": u"leaf",
  195. "id": 103,
  196. "name_cn": u"新增",
  197. "name_en": u"post",
  198. "pid": 11,
  199. "sequence": 11103,
  200. "type": u"action",
  201. "updated_at": u"2017-06-14 10:43:19"
  202. },
  203. {
  204. "archive": 0,
  205. "created_at": u"2017-06-11 23:18:16",
  206. "url": u"xx.yy.zz",
  207. "visible": 1,
  208. "icon": u"leaf",
  209. "id": 104,
  210. "name_cn": u"删除",
  211. "name_en": u"delete",
  212. "pid": 11,
  213. "sequence": 11104,
  214. "type": u"action",
  215. "updated_at": u"2017-06-14 10:43:35"
  216. },
  217. {
  218. "archive": 0,
  219. "created_at": u"2017-06-19 08:14:56",
  220. "url": u"xx.yy.zz",
  221. "visible": 1,
  222. "icon": u"leaf",
  223. "id": 105,
  224. "name_cn": u"查看",
  225. "name_en": u"get",
  226. "pid": 12,
  227. "sequence": 11201,
  228. "type": u"action",
  229. "updated_at": u"2017-06-19 08:14:56"
  230. },
  231. {
  232. "archive": 0,
  233. "created_at": u"2017-06-19 08:14:56",
  234. "url": u"xx.yy.zz",
  235. "visible": 1,
  236. "icon": u"leaf",
  237. "id": 106,
  238. "name_cn": u"修改",
  239. "name_en": u"put",
  240. "pid": 12,
  241. "sequence": 11202,
  242. "type": u"action",
  243. "updated_at": u"2017-06-19 08:14:56"
  244. },
  245. {
  246. "archive": 0,
  247. "created_at": u"2017-06-19 08:14:56",
  248. "url": u"xx.yy.zz",
  249. "visible": 1,
  250. "icon": u"leaf",
  251. "id": 107,
  252. "name_cn": u"新增",
  253. "name_en": u"post",
  254. "pid": 12,
  255. "sequence": 11203,
  256. "type": u"action",
  257. "updated_at": u"2017-06-19 08:14:56"
  258. },
  259. {
  260. "archive": 0,
  261. "created_at": u"2017-06-19 08:14:56",
  262. "url": u"xx.yy.zz",
  263. "visible": 1,
  264. "icon": u"leaf",
  265. "id": 108,
  266. "name_cn": u"删除",
  267. "name_en": u"delete",
  268. "pid": 12,
  269. "sequence": 11204,
  270. "type": u"action",
  271. "updated_at": u"2017-06-19 08:14:56"
  272. },
  273. {
  274. "archive": 0,
  275. "created_at": u"2017-06-19 08:15:22",
  276. "url": u"xx.yy.zz",
  277. "visible": 1,
  278. "icon": u"leaf",
  279. "id": 109,
  280. "name_cn": u"查看",
  281. "name_en": u"get",
  282. "pid": 13,
  283. "sequence": 11301,
  284. "type": u"action",
  285. "updated_at": u"2017-06-19 08:15:22"
  286. },
  287. {
  288. "archive": 0,
  289. "created_at": u"2017-06-19 08:15:22",
  290. "url": u"xx.yy.zz",
  291. "visible": 1,
  292. "icon": u"leaf",
  293. "id": 110,
  294. "name_cn": u"修改",
  295. "name_en": u"put",
  296. "pid": 13,
  297. "sequence": 11302,
  298. "type": u"action",
  299. "updated_at": u"2017-06-19 08:15:22"
  300. },
  301. {
  302. "archive": 0,
  303. "created_at": u"2017-06-19 08:15:22",
  304. "url": u"xx.yy.zz",
  305. "visible": 1,
  306. "icon": u"leaf",
  307. "id": 111,
  308. "name_cn": u"新增",
  309. "name_en": u"post",
  310. "pid": 13,
  311. "sequence": 11303,
  312. "type": u"action",
  313. "updated_at": u"2017-06-19 08:15:22"
  314. },
  315. {
  316. "archive": 0,
  317. "created_at": u"2017-06-19 08:15:22",
  318. "url": u"xx.yy.zz",
  319. "visible": 1,
  320. "icon": u"leaf",
  321. "id": 112,
  322. "name_cn": u"删除",
  323. "name_en": u"delete",
  324. "pid": 13,
  325. "sequence": 11304,
  326. "type": u"action",
  327. "updated_at": u"2017-06-19 08:15:22"
  328. },
  329. {
  330. "archive": 0,
  331. "created_at": u"2017-06-19 08:15:40",
  332. "url": u"xx.yy.zz",
  333. "visible": 1,
  334. "icon": u"leaf",
  335. "id": 113,
  336. "name_cn": u"查看",
  337. "name_en": u"get",
  338. "pid": 14,
  339. "sequence": 11401,
  340. "type": u"action",
  341. "updated_at": u"2017-06-19 08:15:40"
  342. },
  343. {
  344. "archive": 0,
  345. "created_at": u"2017-06-19 08:15:40",
  346. "url": u"xx.yy.zz",
  347. "visible": 1,
  348. "icon": u"leaf",
  349. "id": 114,
  350. "name_cn": u"修改",
  351. "name_en": u"put",
  352. "pid": 14,
  353. "sequence": 11402,
  354. "type": u"action",
  355. "updated_at": u"2017-06-19 08:15:40"
  356. },
  357. {
  358. "archive": 0,
  359. "created_at": u"2017-06-19 08:15:40",
  360. "url": u"xx.yy.zz",
  361. "visible": 1,
  362. "icon": u"leaf",
  363. "id": 115,
  364. "name_cn": u"新增",
  365. "name_en": u"post",
  366. "pid": 14,
  367. "sequence": 11403,
  368. "type": u"action",
  369. "updated_at": u"2017-06-19 08:15:40"
  370. },
  371. {
  372. "archive": 0,
  373. "created_at": u"2017-06-19 08:15:40",
  374. "url": u"xx.yy.zz",
  375. "visible": 1,
  376. "icon": u"leaf",
  377. "id": 116,
  378. "name_cn": u"删除",
  379. "name_en": u"delete",
  380. "pid": 14,
  381. "sequence": 11404,
  382. "type": u"action",
  383. "updated_at": u"2017-06-19 08:15:40"
  384. },
  385. {
  386. "archive": 0,
  387. "created_at": u"2017-06-19 08:16:21",
  388. "url": u"xx.yy.zz",
  389. "visible": 1,
  390. "icon": u"leaf",
  391. "id": 117,
  392. "name_cn": u"查看",
  393. "name_en": u"get",
  394. "pid": 15,
  395. "sequence": 11501,
  396. "type": u"action",
  397. "updated_at": u"2017-06-19 08:16:21"
  398. },
  399. {
  400. "archive": 0,
  401. "created_at": u"2017-06-19 08:16:21",
  402. "url": u"xx.yy.zz",
  403. "visible": 1,
  404. "icon": u"leaf",
  405. "id": 118,
  406. "name_cn": u"修改",
  407. "name_en": u"put",
  408. "pid": 15,
  409. "sequence": 11502,
  410. "type": u"action",
  411. "updated_at": u"2017-06-19 08:16:21"
  412. },
  413. {
  414. "archive": 0,
  415. "created_at": u"2017-06-19 08:16:21",
  416. "url": u"xx.yy.zz",
  417. "visible": 1,
  418. "icon": u"leaf",
  419. "id": 119,
  420. "name_cn": u"新增",
  421. "name_en": u"post",
  422. "pid": 15,
  423. "sequence": 11503,
  424. "type": u"action",
  425. "updated_at": u"2017-06-19 08:16:21"
  426. },
  427. {
  428. "archive": 0,
  429. "created_at": u"2017-06-19 08:16:21",
  430. "url": u"xx.yy.zz",
  431. "visible": 1,
  432. "icon": u"leaf",
  433. "id": 120,
  434. "name_cn": u"删除",
  435. "name_en": u"delete",
  436. "pid": 15,
  437. "sequence": 11504,
  438. "type": u"action",
  439. "updated_at": u"2017-06-19 08:16:21"
  440. },
  441. {
  442. "archive": 0,
  443. "created_at": u"2017-06-19 08:16:42",
  444. "url": u"xx.yy.zz",
  445. "visible": 1,
  446. "icon": u"leaf",
  447. "id": 121,
  448. "name_cn": u"查看",
  449. "name_en": u"get",
  450. "pid": 16,
  451. "sequence": 11601,
  452. "type": u"action",
  453. "updated_at": u"2017-06-19 08:16:42"
  454. },
  455. {
  456. "archive": 0,
  457. "created_at": u"2017-06-19 08:16:42",
  458. "url": u"xx.yy.zz",
  459. "visible": 1,
  460. "icon": u"leaf",
  461. "id": 122,
  462. "name_cn": u"修改",
  463. "name_en": u"put",
  464. "pid": 16,
  465. "sequence": 11602,
  466. "type": u"action",
  467. "updated_at": u"2017-06-19 08:16:42"
  468. },
  469. {
  470. "archive": 0,
  471. "created_at": u"2017-06-19 08:16:42",
  472. "url": u"xx.yy.zz",
  473. "visible": 1,
  474. "icon": u"leaf",
  475. "id": 123,
  476. "name_cn": u"新增",
  477. "name_en": u"post",
  478. "pid": 16,
  479. "sequence": 11603,
  480. "type": u"action",
  481. "updated_at": u"2017-06-19 08:16:42"
  482. },
  483. {
  484. "archive": 0,
  485. "created_at": u"2017-06-19 08:16:42",
  486. "url": u"xx.yy.zz",
  487. "visible": 1,
  488. "icon": u"leaf",
  489. "id": 124,
  490. "name_cn": u"删除",
  491. "name_en": u"delete",
  492. "pid": 16,
  493. "sequence": 11604,
  494. "type": u"action",
  495. "updated_at": u"2017-06-19 08:16:42"
  496. }
  497. ]
  498. for asscess_data in access_list:
  499. access = MenuModel(
  500. id=asscess_data['id'],
  501. name_cn=asscess_data['name_cn'],
  502. name_en=asscess_data['name_en'],
  503. pid=asscess_data['pid'],
  504. type=asscess_data['type'],
  505. sequence=asscess_data['sequence'],
  506. archive=asscess_data['archive'],
  507. icon=asscess_data['icon'],
  508. url=asscess_data['url'],
  509. visible=asscess_data['visible']
  510. )
  511. access.save()
  512. class TestUser:
  513. user_super_login = deepcopy(user_data_login)
  514. def test_add(self):
  515. self.user_super_login['role'] = SUPER
  516. self.user_super_login['password'] = generate_password_hash(self.user_super_login['password'])
  517. user = UserModel(**self.user_super_login)
  518. user.save()
  519. # class TestSpace:
  520. # user_data_login = deepcopy(user_data_login)
  521. #
  522. # def test_add(self):
  523. # self.user_data_login['password'] = generate_password_hash(user_data_login['password'])
  524. # user = UserModel(**self.user_data_login)
  525. # user.save()