Skip to content
Snippets Groups Projects
Commit 51a227dd authored by Jörn Künsemöller's avatar Jörn Künsemöller
Browse files

Task #10810 - changes to not require make install for tests

parent a3610909
No related branches found
No related tags found
No related merge requests found
Showing
with 65 additions and 68 deletions
...@@ -4896,20 +4896,20 @@ SAS/ResourceAssignment/ResourceAssignmentDatabase/CMakeLists.txt -text ...@@ -4896,20 +4896,20 @@ SAS/ResourceAssignment/ResourceAssignmentDatabase/CMakeLists.txt -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/__init__.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/__init__.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/config.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/config.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/CMakeLists.txt -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/README -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_notifications.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_resource_allocation_statics.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_triggers.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_virtual_instrument.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/create_add_notifications.sql.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/create_add_virtual_instrument.sql.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/create_and_populate_database.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/create_database.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radbbuslistener.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/radbbuslistener.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener -text SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener.ini -text SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener.ini -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/radbpglistener.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/CMakeLists.txt -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/README -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/add_notifications.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/add_resource_allocation_statics.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/add_triggers.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/add_virtual_instrument.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/create_add_notifications.sql.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/create_add_virtual_instrument.sql.py -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/create_and_populate_database.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/sql/create_database.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/CMakeLists.txt -text SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/CMakeLists.txt -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/fill_database.sql -text SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/fill_database.sql -text
SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py -text SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py -text
......
...@@ -22,5 +22,16 @@ install(FILES ...@@ -22,5 +22,16 @@ install(FILES
radbpglistener.ini radbpglistener.ini
DESTINATION etc/supervisord.d) DESTINATION etc/supervisord.d)
add_subdirectory(sql) add_subdirectory(radb/sql)
add_subdirectory(tests) add_subdirectory(tests)
# symmetric install of sql in build share/... and installed/share/...
set(sql_files radb/sql/add_notifications.sql
radb/sql/add_triggers.sql
radb/sql/add_resource_allocation_statics.sql
radb/sql/add_virtual_instrument.sql
radb/sql/create_database.sql
radb/sql/create_and_populate_database.sql)
install_files(/share/ FILES ${sql_files})
lofar_add_data_files(${sql_files})
\ No newline at end of file
# $Id: CMakeLists.txt 32341 2015-08-28 11:59:26Z schaap $
# $Id: CMakeLists.txt 32341 2015-08-28 11:59:26Z schaap $
set(sql_files add_notifications.sql
add_triggers.sql
add_resource_allocation_statics.sql
add_virtual_instrument.sql
create_database.sql
create_and_populate_database.sql)
install_files(/share/radb/sql FILES ${sql_files})
...@@ -22,7 +22,6 @@ import unittest ...@@ -22,7 +22,6 @@ import unittest
import testing.postgresql import testing.postgresql
import psycopg2 import psycopg2
import os import os
import datetime
from dateutil import parser from dateutil import parser
try: try:
...@@ -45,7 +44,6 @@ from lofar.common.postgres import PostgresListener ...@@ -45,7 +44,6 @@ from lofar.common.postgres import PostgresListener
class ResourceAssignmentDatabaseTest(unittest.TestCase): class ResourceAssignmentDatabaseTest(unittest.TestCase):
# todo: test shared db to improve test speed # todo: test shared db to improve test speed
# share the generated database for faster tests # share the generated database for faster tests
# Postgresql = testing.postgresql.PostgresqlFactory(cache_initialized_db=True) # Postgresql = testing.postgresql.PostgresqlFactory(cache_initialized_db=True)
...@@ -76,7 +74,9 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -76,7 +74,9 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
# Note: NOSUPERUSER currently raises "permission denied for schema virtual_instrument" # Note: NOSUPERUSER currently raises "permission denied for schema virtual_instrument"
# Maybe we want to sort out user creation and proper permissions in the sql scripts? # Maybe we want to sort out user creation and proper permissions in the sql scripts?
query = "CREATE USER %s WITH SUPERUSER PASSWORD '%s'" % (database_credentials.user, database_credentials.password) query = "CREATE USER %s WITH SUPERUSER PASSWORD '%s'" % (
database_credentials.user,
database_credentials.password)
self._execute_query(query) self._execute_query(query)
for sql_path in self.sql_createdb_paths: for sql_path in self.sql_createdb_paths:
...@@ -101,13 +101,11 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -101,13 +101,11 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
# set up radb python module # set up radb python module
self.radb = RADatabase(database_credentials) self.radb = RADatabase(database_credentials)
def tearDown(self): def tearDown(self):
self.connection.close() self.connection.close()
self.postgresql.stop() self.postgresql.stop()
# self.Postgresql.clear_cache() # todo: use this when using shared db instead of stop(), or remove. # self.Postgresql.clear_cache() # todo: use this when using shared db instead of stop(), or remove.
def _execute_query(self, query, fetch=False): def _execute_query(self, query, fetch=False):
cursor = self.connection.cursor() cursor = self.connection.cursor()
cursor.execute(query) cursor.execute(query)
...@@ -128,7 +126,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -128,7 +126,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
# Of course new tests can be added here where db functionality like triggers should be tested separately from the # Of course new tests can be added here where db functionality like triggers should be tested separately from the
# Python part of the job. # Python part of the job.
# database created? # database created?
def test_select_tables_contains_tables_for_each_schema(self): def test_select_tables_contains_tables_for_each_schema(self):
query = "SELECT table_schema,table_name FROM information_schema.tables" query = "SELECT table_schema,table_name FROM information_schema.tables"
...@@ -149,7 +146,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -149,7 +146,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
fetch = self._execute_query(query, fetch=True) fetch = self._execute_query(query, fetch=True)
self.assertTrue('rcu_board' in str(fetch)) self.assertTrue('rcu_board' in str(fetch))
def _insert_test_spec(self, def _insert_test_spec(self,
starttime='2017-05-10 13:00:00', starttime='2017-05-10 13:00:00',
endtime='2017-05-10 14:00:00', endtime='2017-05-10 14:00:00',
...@@ -215,8 +211,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -215,8 +211,6 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
fetch = self._execute_query(query, fetch=True) fetch = self._execute_query(query, fetch=True)
self.assertTrue(parser.parse(starttime) == fetch[0][0]) self.assertTrue(parser.parse(starttime) == fetch[0][0])
# notifications in place? # notifications in place?
def test_insert_task_triggers_notification(self): def test_insert_task_triggers_notification(self):
# insert specification to not raise INtegrityError # insert specification to not raise INtegrityError
...@@ -226,7 +220,8 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -226,7 +220,8 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
cursor = self.connection.cursor() cursor = self.connection.cursor()
cursor.execute("LISTEN %s;", (psycopg2.extensions.AsIs('task_insert'),)) cursor.execute("LISTEN %s;", (psycopg2.extensions.AsIs('task_insert'),))
# todo: fix this and use this instead to listen for notifications. Problem: For some reason callback function is not called. # todo: fix this and use this instead to listen for notifications.
# todo: ...Problem: For some reason callback function is not called.
# set up listener in a way we can check it was called # set up listener in a way we can check it was called
# callback = mock.Mock() # callback = mock.Mock()
# callback.listen.return_value = 42 # callback.listen.return_value = 42
...@@ -244,7 +239,7 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase): ...@@ -244,7 +239,7 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
try: try:
notification = self.connection.notifies.pop(0) notification = self.connection.notifies.pop(0)
break break
except Exception as e: except Exception:
pass pass
self.assertTrue('task_insert' in str(notification)) self.assertTrue('task_insert' in str(notification))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment