Advertisement
Simuel

TestGenerator DI

May 15th, 2018
450
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.56 KB | None | 0 0
  1. """
  2. Muestra de código generador de datos viejo
  3. """
  4. class TestGenerator(object):
  5. """
  6. Genera datos de pruebas para desarrollo
  7. """
  8.  
  9. def __init__(self, db):
  10. self.db = db
  11. self.request = current.request
  12.  
  13. def generador_pruebas(self):
  14. """
  15. Genera registros de pruebas para todas las tablas del argumento que encuentre sin registros en el sistema
  16. usando el generador de datos Bayesiano incluido en el framework.
  17. Genera tambien un conjunto de usuarios de prueba para realizar pruebas de interfaz de usuario y perfiles
  18. :return: void
  19. """
  20. # Inserta los grupos y los usuarios de la base de datos si esta vacía
  21. self.__grupos()
  22. self.__usuarios()
  23. self.__personas()
  24. self.__sat()
  25. self.__datoscontacto()
  26. self.__dependencia()
  27. self.__direcciones()
  28. self.__fiscales() # Aqui truena
  29. self.__gabinete()
  30. self.__medicos()
  31. self.__aranceles()
  32. # self.__clientes()
  33. # self.__precios()
  34. # self.__intermedias()
  35. self.db.commit()
  36.  
  37. # Generador auxiliar - Datos basura. Lo que no llene el anterior se llena aqui
  38. lista_tablas = self.db.tables()
  39.  
  40. # Hardcodeado para remover ordenes de servicio de inserciones "basura"
  41. lista_tablas.remove('tb_orden_servicio')
  42.  
  43. for tabla in lista_tablas:
  44. if not self.db(self.db[tabla].id > 0).count():
  45. try:
  46. populate.populate(self.db[tabla], 20)
  47. self.db.commit()
  48. except Exception as e:
  49. print e.message
  50. pass
  51.  
  52. def __personas(self):
  53. """
  54. Genera 100 personas para pruebas y las inserta en los registros de la base de datos
  55. :return:
  56. """
  57. from random import randint
  58.  
  59. nombres = ['Juan', 'Pedro', 'Pablo', 'Francisco', 'Jesús', 'Adolfo', 'Gustavo', 'Felipe', 'Alberto', 'Irving',
  60. 'Adrián', 'Carlos', 'Maria', 'Karla', 'Adriana', 'Karina', 'Elena', 'Alejandra', 'Lucia', 'Ana',
  61. 'Antonio', 'Edgar', 'Jaime', 'Augusto', 'Marco', 'Tulio', 'Mariana', 'Karina', 'Rubi', 'Esmeralda',
  62. 'De Jesus', 'Salvadora', 'Catalina'
  63. ]
  64.  
  65. apellidos = ['Corral', 'Medina', 'Angulo', 'Esquer', 'Gutiérrez', 'López', 'Sánchez', 'Ramírez', 'Valenzuela',
  66. 'Valencia', 'Barajas', 'Arrecemi', 'Gómez', 'Iñarriatú', 'Garza', 'García', 'Negri', 'Martínez',
  67. 'Garabito', 'Borrego', 'Peña', 'Nieto', 'Del Campo', 'De la Colina', 'Márquez', 'Maciáca',
  68. 'Obregón'
  69. ]
  70.  
  71. sexo = ['Masculino', 'Femenino', 'Transgénero', 'Otro']
  72.  
  73. # len() necesita -1, o puede regresar un valor fuera del index de la lista
  74. for i in range(0, 80):
  75. self.db.tb_persona.insert(
  76. apellido_paterno=apellidos[randint(0, len(apellidos) - 1)],
  77. apellido_materno=apellidos[randint(0, len(apellidos) - 1)],
  78. nombre=nombres[randint(0, len(nombres) - 1)],
  79. fecha_nacimiento=self.request.now,
  80. sexo=sexo[randint(0, len(sexo) - 1)],
  81. is_active=True,
  82. created_on=self.request.now,
  83. created_by=1,
  84. modified_on=self.request.now,
  85. modified_by=1,
  86. )
  87. pass
  88.  
  89. def __usuarios(self):
  90. """
  91. Genera usuarios de la base de datos para propósitos de pruebas
  92. :return:
  93. """
  94. if not self.db(self.db.auth_user.id > 0).count():
  95. recepcionistas_id = self.db(
  96. self.db.auth_group.role == 'recepcionistas'
  97. ).select(self.db.auth_group.id)[0].id
  98.  
  99. supervisores_id = self.db(
  100. self.db.auth_group.role == 'supervisores'
  101. ).select(self.db.auth_group.id)[0].id
  102.  
  103. auxiliares_id = self.db(
  104. self.db.auth_group.role == 'auxiliares'
  105. ).select(self.db.auth_group.id)[0].id
  106.  
  107. finanzas_id = self.db(
  108. self.db.auth_group.role == 'finanzas'
  109. ).select(self.db.auth_group.id)[0].id
  110.  
  111. administrador_id = self.db(
  112. self.db.auth_group.role == 'administradores'
  113. ).select(self.db.auth_group.id)[0].id
  114.  
  115. sysadmin_id = self.db(
  116. self.db.auth_group.role == 'sysadmins'
  117. ).select(self.db.auth_group.id)[0].id
  118.  
  119. import hashlib
  120.  
  121. password = hashlib.sha1("123456").hexdigest()
  122.  
  123. recep_id = self.db.auth_user.insert(
  124. first_name="Recepcionista",
  125. last_name=".",
  126. email="recepcionista@gmail.com",
  127. password=password
  128. )
  129.  
  130. super_id = self.db.auth_user.insert(
  131. first_name="Supervisor",
  132. last_name=".",
  133. email="supervisor@gmail.com",
  134. password=password
  135. )
  136.  
  137. aux_id = self.db.auth_user.insert(
  138. first_name="Auxiliar",
  139. last_name=".",
  140. email="auxiliar@gmail.com",
  141. password=password
  142. )
  143.  
  144. fin_id = self.db.auth_user.insert(
  145. first_name="Finanzas",
  146. last_name=".",
  147. email="finanzas@gmail.com",
  148. password=password
  149. )
  150.  
  151. admin_id = self.db.auth_user.insert(
  152. first_name="Administrador",
  153. last_name=".",
  154. email="administrador@gmail.com",
  155. password=password
  156. )
  157.  
  158. sysad_id = self.db.auth_user.insert(
  159. first_name="SysAdmin",
  160. last_name=".",
  161. email="sysadmin@gmail.com",
  162. password=password
  163. )
  164.  
  165. self.db.auth_membership.insert(user_id=recep_id,
  166. group_id=recepcionistas_id
  167. )
  168.  
  169. self.db.auth_membership.insert(user_id=super_id,
  170. group_id=supervisores_id
  171. )
  172.  
  173. self.db.auth_membership.insert(user_id=aux_id,
  174. group_id=auxiliares_id
  175. )
  176.  
  177. self.db.auth_membership.insert(user_id=fin_id,
  178. group_id=finanzas_id
  179. )
  180.  
  181. self.db.auth_membership.insert(user_id=admin_id,
  182. group_id=administrador_id
  183. )
  184.  
  185. self.db.auth_membership.insert(user_id=sysad_id,
  186. group_id=sysadmin_id
  187. )
  188. return
  189.  
  190. def __sat(self):
  191. if not self.db(self.db.SAT_banco.id > 0).count():
  192. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_banco.csv')
  193. csv = open(path)
  194. self.db.SAT_banco.import_from_csv_file(csv)
  195. csv.close()
  196.  
  197. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_claveprodserv.csv')
  198. csv = open(path)
  199. self.db.SAT_claveprodserv.import_from_csv_file(csv)
  200. csv.close()
  201.  
  202. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_claveunidad.csv')
  203. csv = open(path)
  204. self.db.SAT_claveunidad.import_from_csv_file(csv)
  205. csv.close()
  206.  
  207. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_formapago.csv')
  208. csv = open(path)
  209. self.db.SAT_formapago.import_from_csv_file(csv)
  210. csv.close()
  211.  
  212. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_impuesto.csv')
  213. csv = open(path)
  214. self.db.SAT_impuesto.import_from_csv_file(csv)
  215. csv.close()
  216.  
  217. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_metodopago.csv')
  218. csv = open(path)
  219. self.db.SAT_metodopago.import_from_csv_file(csv)
  220. csv.close()
  221.  
  222. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_moneda.csv')
  223. csv = open(path)
  224. self.db.SAT_moneda.import_from_csv_file(csv)
  225. csv.close()
  226.  
  227. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_regimenfiscal.csv')
  228. csv = open(path)
  229. self.db.SAT_regimenfiscal.import_from_csv_file(csv)
  230. csv.close()
  231.  
  232. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_tasaocuota.csv')
  233. csv = open(path)
  234. self.db.SAT_tasaocuota.import_from_csv_file(csv)
  235. csv.close()
  236.  
  237. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_tipodecomprobante.csv')
  238. csv = open(path)
  239. self.db.SAT_tipodecomprobante.import_from_csv_file(csv)
  240. csv.close()
  241.  
  242. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_tipofactor.csv')
  243. csv = open(path)
  244. self.db.SAT_tipofactor.import_from_csv_file(csv)
  245. csv.close()
  246.  
  247. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_tiporelacion.csv')
  248. csv = open(path)
  249. self.db.SAT_tiporelacion.import_from_csv_file(csv)
  250. csv.close()
  251.  
  252. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_unidad_medida.csv')
  253. csv = open(path)
  254. self.db.SAT_unidad_medida.import_from_csv_file(csv)
  255. csv.close()
  256.  
  257. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_SAT_usocfdi.csv')
  258. csv = open(path)
  259. self.db.SAT_usocfdi.import_from_csv_file(csv)
  260. csv.close()
  261.  
  262. return
  263.  
  264. def __datoscontacto(self):
  265. if not self.db(self.db.tb_datos_contacto.id > 0).count():
  266. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_datos_contacto.csv')
  267. csv = open(path)
  268. self.db.tb_datos_contacto.import_from_csv_file(csv)
  269. csv.close()
  270. return
  271.  
  272. def __dependencia(self):
  273. if not self.db(self.db.tb_dependencia.id > 0).count():
  274. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_dependencia.csv')
  275. csv = open(path)
  276. self.db.tb_dependencia.import_from_csv_file(csv)
  277. csv.close()
  278. return
  279.  
  280. def __direcciones(self):
  281. """
  282. Incluye todos los elementos de direcciones (municipios, ciudades, estados, etc)
  283. :return:
  284. """
  285. if not self.db(self.db.tb_direccion.id > 0).count():
  286. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_direccion.csv')
  287. csv = open(path)
  288. self.db.tb_direccion.import_from_csv_file(csv)
  289. csv.close()
  290. return
  291.  
  292. def __fiscales(self):
  293. if not self.db(self.db.tb_serie.id > 0).count():
  294. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_serie.csv')
  295. csv = open(path)
  296. self.db.tb_serie.import_from_csv_file(csv)
  297. csv.close()
  298. if not self.db(self.db.tb_emisor_fiscal.id > 0).count():
  299.  
  300. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_emisor_fiscal.csv')
  301. csv = open(path)
  302. self.db.tb_emisor_fiscal.import_from_csv_file(csv)
  303. csv.close()
  304. if not self.db(self.db.tb_receptor_fiscal.id > 0).count():
  305.  
  306. # TODO: Problema de llave foranea
  307. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_receptor_fiscal.csv')
  308. csv = open(path)
  309. self.db.tb_receptor_fiscal.import_from_csv_file(csv)
  310. csv.close()
  311. return
  312.  
  313. def __gabinete(self):
  314. if not self.db(self.db.tb_gabinete.id > 0).count():
  315. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_gabinete.csv')
  316. csv = open(path)
  317. self.db.tb_gabinete.import_from_csv_file(csv)
  318. csv.close()
  319.  
  320. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_sala.csv')
  321. csv = open(path)
  322. self.db.tb_sala.import_from_csv_file(csv)
  323. csv.close()
  324. return
  325.  
  326. def __medicos(self):
  327. if not self.db(self.db.tb_horario.id > 0).count():
  328. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_horario.csv')
  329. csv = open(path)
  330. self.db.tb_horario.import_from_csv_file(csv)
  331. csv.close()
  332.  
  333. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_especialidad.csv')
  334. csv = open(path)
  335. self.db.tb_especialidad.import_from_csv_file(csv)
  336. csv.close()
  337.  
  338. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_staff.csv')
  339. csv = open(path)
  340. self.db.tb_staff.import_from_csv_file(csv)
  341. csv.close()
  342.  
  343. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_medico_externo.csv')
  344. csv = open(path)
  345. self.db.tb_medico_externo.import_from_csv_file(csv)
  346. csv.close()
  347. return
  348.  
  349. def __aranceles(self):
  350. if not self.db(self.db.tb_division.id > 0).count():
  351. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_division.csv')
  352. csv = open(path)
  353. self.db.tb_division.import_from_csv_file(csv)
  354. csv.close()
  355.  
  356. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_placa.csv')
  357. csv = open(path)
  358. self.db.tb_placa.import_from_csv_file(csv)
  359. csv.close()
  360.  
  361. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_arancel.csv')
  362. csv = open(path)
  363. self.db.tb_arancel.import_from_csv_file(csv)
  364. csv.close()
  365. return
  366.  
  367. def __clientes(self):
  368. if not self.db(self.db.tb_cliente.id > 0).count():
  369. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_cliente.csv')
  370. csv = open(path)
  371. self.db.tb_cliente.import_from_csv_file(csv)
  372. csv.close()
  373. return
  374.  
  375. def __precios(self):
  376. if not self.db(self.db.tb_descuento.id > 0).count():
  377. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_descuento.csv')
  378. csv = open(path)
  379. self.db.tb_descuento.import_from_csv_file(csv)
  380. csv.close()
  381.  
  382. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_precio.csv')
  383. csv = open(path)
  384. self.db.tb_precio.import_from_csv_file(csv)
  385. csv.close()
  386. return
  387.  
  388. def __intermedias(self):
  389. if not self.db(self.db.tb_gabinete_usuario.id > 0).count():
  390. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_gabinete_usuario.csv')
  391. csv = open(path)
  392. self.db.tb_gabinete_usuario.import_from_csv_file(csv)
  393. csv.close()
  394.  
  395. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_gabinete_arancel.csv')
  396. csv = open(path)
  397. self.db.tb_gabinete_arancel.import_from_csv_file(csv)
  398. csv.close()
  399.  
  400. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_gabinete_banco.csv')
  401. csv = open(path)
  402. self.db.tb_gabinete_banco.import_from_csv_file(csv)
  403. csv.close()
  404.  
  405. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_paciente_banco.csv')
  406. csv = open(path)
  407. self.db.tb_paciente_banco.import_from_csv_file(csv)
  408. csv.close()
  409.  
  410. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_cliente_banco.csv')
  411. csv = open(path)
  412. self.db.tb_cliente_banco.import_from_csv_file(csv)
  413. csv.close()
  414.  
  415. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_cliente_correo.csv')
  416. csv = open(path)
  417. self.db.tb_cliente_correo.import_from_csv_file(csv)
  418. csv.close()
  419.  
  420. path = os.path.join(os.path.dirname(__file__), 'catalogos/db_tb_cliente_paciente.csv')
  421. csv = open(path)
  422. self.db.tb_cliente_paciente.import_from_csv_file(csv)
  423. csv.close()
  424. return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement