def test_exists_WhenProvidedANonExistingHosts_ReturnsFalse(self): self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( []) self.assertFalse(self.hostRepository.exists("some_host")) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with( existsQuery, "some_host", "some_host")
def getServiceNamesTestCase(self, filters, expectedQuery): self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [{'name': 'service_name1'}, {'name': 'service_name2'}]) service_names = self.repository.getServiceNames(filters) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery) self.assertEqual([{'name': 'service_name1'}, {'name': 'service_name2'}], service_names)
def test_getPortsAndServicesByHostIP_InvokedWithFewFilters_ReturnsPortsAndServices( self): from app.auxiliary import Filters expected_query = ( "SELECT hosts.ip, ports.portId, ports.protocol, ports.state, ports.hostId, ports.serviceId, " "services.name, services.product, services.version, services.extrainfo, services.fingerprint " "FROM portObj AS ports INNER JOIN hostObj AS hosts ON hosts.id = ports.hostId " "LEFT OUTER JOIN serviceObj AS services ON services.id = ports.serviceId " "WHERE hosts.ip = ? AND ports.protocol != 'tcp' AND ports.protocol != 'udp'" ) self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['ip1'], ['ip2']]) filters: Filters = Filters() filters.apply(up=True, down=True, checked=True, portopen=True, portfiltered=True, portclosed=True, tcp=False, udp=False) results = self.repository.getPortsAndServicesByHostIP( "some_host_ip", filters) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with( expected_query, "some_host_ip") self.assertEqual([['ip1'], ['ip2']], results)
def test_getProcesses_WhenProvidedShowProcessesWithNoFlag_ReturnsProcesses(self): expectedQuery = "SELECT * FROM process AS process WHERE process.display=? order by id asc" self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['some-process'], ['some-process2']]) processes = self.processRepository.getProcesses(self.mockFilters, "True", sort='asc', ncol='id') self.assertEqual(processes, [['some-process'], ['some-process2']]) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery, 'True')
def test_getPortStatesByHostId_ReturnsPortsStates(self): expected_query = 'SELECT port.state FROM portObj as port WHERE port.hostId = ?' self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['port-state1'], ['port-state2']]) port_states = self.repository.getPortStatesByHostId("some_host_id") self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expected_query, "some_host_id") self.assertEqual([['port-state1'], ['port-state2']], port_states)
def test_getHostsByToolName_WhenProvidedToolNameAndClosedAsFetchAll_StoresProcessRunningElapsedTime(self): expectedQuery = ('SELECT "0", "0", "0", "0", "0", process.hostIp, process.port, process.protocol, "0", "0", ' 'process.outputfile, "0", "0", "0" FROM process AS process WHERE process.name=?') self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll([["some-host1"], ["some-host2"]]) hosts = self.processRepository.getHostsByToolName("some-toolname", "FetchAll") self.assertEqual([["some-host1"], ["some-host2"]], hosts) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery, "some-toolname")
def test_getPIDByProcessId_WhenProcIdDoesNotExist_ReturnsNegativeOne(self): expectedQuery = 'SELECT process.pid FROM process AS process WHERE process.id=?' self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll(False) actual_status = self.processRepository.getPIDByProcessId("some_process_id") self.assertEqual(actual_status, -1) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery, "some_process_id")
def test_getPIDByProcessId_WhenGivenProcId_FetchesProcessId(self): expectedQuery = 'SELECT process.pid FROM process AS process WHERE process.id=?' self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll([['1234']]) actual_status = self.processRepository.getPIDByProcessId("some_process_id") self.assertEqual(actual_status, '1234') self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery, "some_process_id")
def test_isKilledProcess_WhenProvidedNonKilledProcessId_ReturnsFalse(self): expectedQuery = "SELECT process.status FROM process AS process WHERE process.id=?" self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [["Running"]]) self.assertFalse( self.processRepository.isKilledProcess("some_process_id")) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with( expectedQuery, "some_process_id")
def test_getProcesses_WhenProvidedShowProcessesWithFlagFalse_ReturnsProcesses(self): expectedQuery = ('SELECT process.id, process.hostIp, process.tabTitle, process.outputfile, output.output ' 'FROM process AS process INNER JOIN process_output AS output ON process.id = output.processId ' 'WHERE process.display = ? AND process.closed = "False" order by process.id desc') self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['some-process'], ['some-process2']]) processes = self.processRepository.getProcesses(self.mockFilters, showProcesses=False) self.assertEqual(processes, [['some-process'], ['some-process2']]) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery, 'False')
def test_getProcesses_WhenProvidedShowProcessesWithNoNmapFlag_ReturnsProcesses(self): expectedQuery = ('SELECT "0", "0", "0", process.name, "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ' 'FROM process AS process WHERE process.closed = "False" AND process.name != "nmap" ' 'GROUP BY process.name') self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['some-process'], ['some-process2']]) processes = self.processRepository.getProcesses(self.mockFilters, showProcesses='noNmap') self.assertEqual(processes, [['some-process'], ['some-process2']]) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery)
def test_getHosts_InvokedWithNoFilters_ReturnsHosts(self): from app.auxiliary import Filters self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll([['host1'], ['host2']]) expectedQuery = "SELECT * FROM hostObj AS hosts WHERE 1=1" filters: Filters = Filters() filters.apply(up=True, down=True, checked=True, portopen=True, portfiltered=True, portclosed=True, tcp=True, udp=True) result = self.hostRepository.getHosts(filters) self.assertEqual([['host1'], ['host2']], result) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with(expectedQuery)
def test_getCVEsByHostIP_WhenProvidedAHostIp_ReturnsCVEs(self): from db.repositories.CVERepository import CVERepository self.mock_db_adapter.metadata.bind.execute.return_value = mockExecuteFetchAll([['cve1'], ['cve2']]) expected_query = ("SELECT cves.name, cves.severity, cves.product, cves.version, cves.url, cves.source, " "cves.exploitId, cves.exploit, cves.exploitUrl FROM cve AS cves " "INNER JOIN hostObj AS hosts ON hosts.id = cves.hostId " "WHERE hosts.ip = ?") cveRepository = CVERepository(self.mock_db_adapter) result = cveRepository.getCVEsByHostIP("some_host") self.assertEqual([['cve1'], ['cve2']], result) self.mock_db_adapter.metadata.bind.execute.assert_called_once_with(expected_query, "some_host")
def test_getScriptOutputById_WhenProvidedAScriptId_ReturnsScriptOutput( self): expectedQuery = "SELECT script.output FROM l1ScriptObj as script WHERE script.id = ?" self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['some-script-output1'], ['some-script-output2']]) scripts = self.scriptRepository.getScriptOutputById("some-id") self.assertEqual([['some-script-output1'], ['some-script-output2']], scripts) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with( expectedQuery, "some-id")
def test_getScriptsByHostIP_WhenProvidedAHostIP_ReturnsAllScripts(self): expectedQuery = ( "SELECT host.id, host.scriptId, port.portId, port.protocol FROM l1ScriptObj AS host " "INNER JOIN hostObj AS hosts ON hosts.id = host.hostId " "LEFT OUTER JOIN portObj AS port ON port.id = host.portId WHERE hosts.ip=?" ) self.mockDbAdapter.metadata.bind.execute.return_value = mockExecuteFetchAll( [['some-script1'], ['some-script2']]) scripts = self.scriptRepository.getScriptsByHostIP("some-host-ip") self.assertEqual([['some-script1'], ['some-script2']], scripts) self.mockDbAdapter.metadata.bind.execute.assert_called_once_with( expectedQuery, "some-host-ip")