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')