'''
Created on 2021-07-26
@author: wf
'''
from tests.testSMW import TestSMW
from tests.testDblpXml import TestDblp
from corpus.lookup import CorpusLookup
from corpus.event import EventStorage
from tests.datasourcetoolbox import DataSourceTest
import json
[docs]class TestCorpusLookup(DataSourceTest):
'''
test the event corpus
'''
[docs] def setUp(self, debug=False, profile=True, **kwargs):
DataSourceTest.setUp(self, debug=debug, profile=profile, **kwargs)
pass
[docs] def testLookup(self):
'''
test the lookup
'''
lookup=CorpusLookup(configure=self.configureCorpusLookup)
lookup.load()
self.assertGreaterEqual(len(lookup.eventCorpus.eventDataSources), 10)
[docs] def testViewDDL(self):
'''
test the view DDL
'''
viewDDLs=EventStorage.getCommonViewDDLs()
debug=self.debug
#debug=True
if debug:
for viewDDL in viewDDLs.values():
print(viewDDL)
self.assertEqual(2,len(viewDDLs))
for viewDDL in viewDDLs.values():
self.assertTrue("CREATE VIEW" in viewDDL)
[docs] def testGetDataSourceInfos(self):
'''
test getting the infos for the datasources
'''
lookup=CorpusLookup(configure=self.configureCorpusLookup)
infos=lookup.getDataSourceInfos()
# self.debug=True
if self.debug:
print(infos)
[docs] def testDataSource4Table(self):
'''
test getting datasources by table name
'''
lookup=CorpusLookup(configure=self.configureCorpusLookup)
dataSource=lookup.getDataSource4TableName("event_confref")
if self.debug:
print(f"{dataSource.name}")
self.assertEqual("confref.org",dataSource.name)
[docs] def testMultiQuery(self):
'''
test getting entries for a given query
'''
multiQuery="select * from {event}"
lookup=CorpusLookup(configure=self.configureCorpusLookup)
variable=lookup.getMultiQueryVariable(multiQuery)
debug=self.debug
# debug=True
if debug:
print(f"found '{variable}' as the variable in '{multiQuery}'")
self.assertEqual("event",variable)
lookup.load()
idQuery="""select source,eventId from event where acronym like "%WEBIST%" order by year desc"""
dictOfLod=lookup.getDictOfLod4MultiQuery(multiQuery,idQuery)
if debug:
jsonStr=json.dumps(dictOfLod, sort_keys=True, indent=2,default=str)
print(jsonStr)
for dataSourceName in ["confref","dblp","wikicfp"]:
self.assertTrue(dataSourceName in dictOfLod)
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
DataSourceTest.main()