summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2019-05-30 17:56:06 +0200
committerOpenGnSys Support Team <soporte-og@soleta.eu>2019-05-31 11:35:42 +0200
commit727a109f7d79f8ad182ec3a353198e84fe7dfcdd (patch)
treea73acda1a14a798120321ff065ec2a5c3302e61a /tests
parenteb6aa82cd4241db75c223444313b666ae35d1945 (diff)
#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.
Diffstat (limited to 'tests')
-rw-r--r--tests/config/ogAdmServer.cfg7
-rwxr-xr-xtests/run-tests.py42
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/config/ogAdmServer.cfg b/tests/config/ogAdmServer.cfg
new file mode 100644
index 0000000..aa20113
--- /dev/null
+++ b/tests/config/ogAdmServer.cfg
@@ -0,0 +1,7 @@
+ServidorAdm=localhost
+PUERTO=2008
+USUARIO=test-db
+PASSWORD=test-db
+datasource=localhost
+CATALOG=test-db
+INTERFACE=eth1
diff --git a/tests/run-tests.py b/tests/run-tests.py
new file mode 100755
index 0000000..0491ccb
--- /dev/null
+++ b/tests/run-tests.py
@@ -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'])