def test_scanElementChildrenAll_argument_parentIds_of_invalid_type_should_raise_TypeError(self): """ Test scanElementChildrenAll(self, instanceId, parentIds) """ sfdb = SpiderFootDb(self.default_options, False) instance_id = "example instance id" invalid_types = [None, "", dict(), int()] for invalid_type in invalid_types: with self.subTest(invalid_type=invalid_type): with self.assertRaises(TypeError): sfdb.scanElementChildrenAll(instance_id, invalid_type)
def resultsetfp(self, id, resultids, fp): """Set a bunch of results (hashes) as false positive Args: id (str): scan ID resultids (str): comma separated list of result IDs fp (str): 0 or 1 Returns: str: set false positive status as JSON """ cherrypy.response.headers['Content-Type'] = "application/json; charset=utf-8" dbh = SpiderFootDb(self.config) if fp not in ["0", "1"]: return json.dumps(["ERROR", "No FP flag set or not set correctly."]).encode('utf-8') try: ids = json.loads(resultids) except Exception: return json.dumps(["ERROR", "No IDs supplied."]).encode('utf-8') # Cannot set FPs if a scan is not completed status = dbh.scanInstanceGet(id) if not status: return self.error("Invalid scan ID: %s" % id) if status[5] not in ["ABORTED", "FINISHED", "ERROR-FAILED"]: return json.dumps([ "WARNING", "Scan must be in a finished state when setting False Positives." ]).encode('utf-8') # Make sure the user doesn't set something as non-FP when the # parent is set as an FP. if fp == "0": data = dbh.scanElementSourcesDirect(id, ids) for row in data: if str(row[14]) == "1": return json.dumps([ "WARNING", f"Cannot unset element {id} as False Positive if a parent element is still False Positive." ]).encode('utf-8') # Set all the children as FPs too.. it's only logical afterall, right? childs = dbh.scanElementChildrenAll(id, ids) allIds = ids + childs ret = dbh.scanResultsUpdateFP(id, allIds, fp) if ret: return json.dumps(["SUCCESS", ""]).encode('utf-8') return json.dumps(["ERROR", "Exception encountered."]).encode('utf-8')
def test_scanElementChildrenAll_should_return_a_list(self): """ Test scanElementChildrenAll(self, instanceId, parentIds) """ sfdb = SpiderFootDb(self.default_options, False) instance_id = "example instance id" scan_element_children_all = sfdb.scanElementChildrenAll(instance_id, list()) self.assertIsInstance(scan_element_children_all, list) self.assertEqual('TBD', 'TBD')