mirror of https://git.48k.eu/ogserver
#915 add unit test infrastructure for REST API
This python script creates a database and starts ogAdmServer to run the tests. This requires root to be launched: # ./run-tests.py From the 'tests' folder.master
parent
eb6aa82cd4
commit
727a109f7d
|
@ -0,0 +1,7 @@
|
|||
ServidorAdm=localhost
|
||||
PUERTO=2008
|
||||
USUARIO=test-db
|
||||
PASSWORD=test-db
|
||||
datasource=localhost
|
||||
CATALOG=test-db
|
||||
INTERFACE=eth1
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import subprocess, glob, os
|
||||
|
||||
sql_data = "INSERT INTO aulas (nombreaula, idcentro, urlfoto, grupoid, ubicacion, puestos, modomul, ipmul, pormul, velmul, router, netmask, ntp, dns, proxy, modp2p, timep2p) VALUES ('Aula virtual', 1, 'aula.jpg', 0, 'Despliegue virtual con Vagrant.', 5, 2, '239.194.2.11', 9000, 70, '192.168.56.1', '255.255.255.0', '', '', '', 'peer', 30); INSERT INTO ordenadores (nombreordenador, ip, mac, idaula, idrepositorio, idperfilhard, idmenu, idproautoexec, grupoid, router, mascara, arranque, netiface, netdriver, fotoord) VALUES ('pc2', '192.168.2.1', '0800270E6501', 1, 1, 0, 0, 0, 0, '192.168.56.1', '255.255.255.0', '00unknown', 'eth0', 'generic', 'fotoordenador.gif'), ('pc2', '192.168.2.2', '0800270E6502', 1, 1, 0, 0, 0, 0, '192.168.56.1', '255.255.255.0', '00unknown', 'eth0', 'generic', 'fotoordenador.gif');"
|
||||
|
||||
sql_create_user = "CREATE USER 'test-db'@'hostname'; GRANT ALL PRIVILEGES ON *.* To 'test-db'@'hostname' IDENTIFIED BY 'test-db';"
|
||||
|
||||
sql_delete_user = "DROP USER 'test-db'@'hostname';"
|
||||
|
||||
def start_mysql():
|
||||
|
||||
subprocess.run(['mysqladmin', 'drop', '-f', 'test-db'],
|
||||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
subprocess.run(['mysqladmin', 'create', 'test-db'])
|
||||
subprocess.run('mysql --default-character-set=utf8 test-db < ../../../../Database/ogAdmBD.sql', shell=True)
|
||||
subprocess.run(['mysql', '-D', 'test-db', '-e', sql_data])
|
||||
subprocess.run(['mysql', '-D', 'test-db', '-e', sql_create_user])
|
||||
|
||||
return
|
||||
|
||||
def stop_mysql():
|
||||
|
||||
subprocess.run(['mysql', '-D', 'test-db', '-e', sql_delete_user])
|
||||
subprocess.run(['mysqladmin', 'drop', '-f', 'test-db'])
|
||||
|
||||
return
|
||||
|
||||
if os.getuid() is not 0:
|
||||
print('You need to be root to run these tests :-)')
|
||||
exit()
|
||||
|
||||
start_mysql();
|
||||
|
||||
subprocess.Popen(['../ogAdmServer', '-f', 'config/ogAdmServer.cfg'])
|
||||
|
||||
for filename in glob.iglob('units/**'):
|
||||
subprocess.run(['python3', filename, '-v'])
|
||||
|
||||
stop_mysql();
|
||||
|
||||
subprocess.run(['pkill', 'ogAdmServer'])
|
Loading…
Reference in New Issue