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
Branches
Tags
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