87 lines
3.6 KiB
Python
87 lines
3.6 KiB
Python
import logging
|
|
from ..postgresmanager import PostgresManager
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def test_select_from_DB():
|
|
logger.info('=== Running Test Select from DB ===')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
resp = psql.select("otas",columns=['version', 'device_name'] )
|
|
logger.info(f"Select returned: {resp}")
|
|
assert resp
|
|
|
|
def test_select_with_where_from_DB():
|
|
logger.info('=== Running Test Select with Where from DB ===')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
resp = psql.select("otas",columns=['version', 'device_name'],where={'build_id':"BD4A.240925.111"})
|
|
logger.info(f"Select returned: {resp}")
|
|
assert len(resp) > 0
|
|
|
|
# Insert tests
|
|
|
|
def test_insert_into_DB():
|
|
logger.info(' === Running Test insert into DB ===')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
data = {"device": "test", "version": "test", "vendor":"test"}
|
|
table = 'firmware'
|
|
assert psql.insert(table,data)
|
|
logger.info('Exiting Test insert into DB')
|
|
|
|
def test_insert_into_db_with_dict():
|
|
logger.info('=== Running Test insert into DB === ')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
data = {"device": "test2", "version": "test2", "vendor":{}}
|
|
table = 'firmware'
|
|
assert psql.insert(table,data)
|
|
logger.info('Exiting Test insert into DB')
|
|
|
|
# Update tests
|
|
def test_update_single_update_record():
|
|
logger.info(' === Running Update single record === ')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
set = {"version": "50"}
|
|
where = {"device": "test"}
|
|
table = 'firmware'
|
|
assert psql.update(table, set, where) > 0
|
|
logger.info('Exiting Test Update record')
|
|
|
|
def test_update_multiple_updates():
|
|
logger.info(' === Running Test Update with Multiple Values === ')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
set = {"device": "test3", 'version': 'test_string'}
|
|
where = {'device':'test', 'version': '50'}
|
|
table = 'firmware'
|
|
assert psql.update(table,set,where=where) > 0
|
|
|
|
def test_update_with_dict_values():
|
|
logger.info(' === Running Test Update with Dictionary value === ')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
set = {"version": {'ios':'leopard'}}
|
|
where = {'device':'test3', 'version': 'test_string'}
|
|
table = 'firmware'
|
|
assert psql.update(table,set,where=where) > 0
|
|
|
|
|
|
def test_delete_from_DB():
|
|
logger.info('=== Running Test deleting from table === ')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
data = {"device": "test"}
|
|
table = 'firmware'
|
|
assert psql.delete(table,data)
|
|
#data['device'] = 'test2'
|
|
#assert psql.delete(table,data)
|
|
data['device'] = 'test3'
|
|
assert psql.delete(table,data)
|
|
logger.info('Exiting Test deleting from table DB')
|
|
|
|
|
|
def test_neg_update_record():
|
|
logger.info('=== Running NEGATIVE Test Update record ===')
|
|
psql = PostgresManager(host="ingots-db-test", database="exploit_chain_catalog", user="ingots", password="ingots")
|
|
set = {"version": "50"}
|
|
where = {"id": "88888888"}
|
|
table = 'firmware'
|
|
assert psql.update(table, set, where) == -1
|
|
logger.info('Exiting NEGATIVE Test Update record')
|
|
|