def test_search_argument_criteria_one_criteria_should_raise_ValueError( self): """ Test search(self, criteria, filterFp=False) """ sfdb = SpiderFootDb(self.default_options, False) criteria = {'type': "example type"} with self.assertRaises(ValueError): sfdb.search(criteria, False)
def test_search_argument_criteria_of_invalid_type_should_raise_TypeError(self): """ Test search(self, criteria, filterFp=False) """ sfdb = SpiderFootDb(self.default_options, False) invalid_types = [None, "", list(), int()] for invalid_type in invalid_types: with self.subTest(invalid_type=invalid_type): with self.assertRaises(TypeError): sfdb.search(invalid_type, False)
def test_search_argument_criteria_key_of_invalid_type_should_raise_TypeError(self): """ Test search(self, criteria, filterFp=False) """ sfdb = SpiderFootDb(self.default_options, False) criteria = { 'type': "example type", 'value': "example value", 'regex': [] } with self.assertRaises(TypeError): sfdb.search(criteria, False)
def searchBase(self, id=None, eventType=None, value=None): """Search Args: id: TBD eventType: TBD value: TBD Returns: list: search results """ retdata = [] if not id and not eventType and not value: return retdata if not value: value = '' regex = "" if value.startswith("/") and value.endswith("/"): regex = value[1:len(value) - 1] value = "" value = value.replace('*', '%') if value in [None, ""] and regex in [None, ""]: value = "%" regex = "" dbh = SpiderFootDb(self.config) criteria = { 'scan_id': id or '', 'type': eventType or '', 'value': value or '', 'regex': regex or '', } try: data = dbh.search(criteria) except Exception: return retdata for row in data: lastseen = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(row[0])) escapeddata = html.escape(row[1]) escapedsrc = html.escape(row[2]) retdata.append([lastseen, escapeddata, escapedsrc, row[3], row[5], row[6], row[7], row[8], row[10], row[11], row[4], row[13], row[14]]) return retdata
def test_search_should_return_a_list(self): """ Test search(self, criteria, filterFp=False) """ sfdb = SpiderFootDb(self.default_options, False) criteria = { 'scan_id': "example scan id", 'type': "example type", 'value': "example value", 'regex': "example regex" } search_results = sfdb.search(criteria, False) self.assertIsInstance(search_results, list) self.assertFalse(search_results)