def addAll(self,words): for word in words: word = Bad.computeHash(word) memos = self.loadMemosByColumns({'word':word}) if len(memos) == 0: bad = Bad({'word':word}) self.save(bad)
def testCollision(self): collider = Collider() common = Phrase.getCommon() for phrase in common: word = phrase.content collider.add(word) badWords = Bad.getBadWords() for word in badWords: collider.add(word) collider.ok()
def bad(self, maxCount=None): words = Bad.getBadWords(maxCount) self.db.bad.addAll(words) words = list(words) n = len(words) for i in range(n): word = words[i] self.cache(word) print(f"bad word {i} of {n} cached") print(f"bad words cached")
def contains(self,word): word = Bad.computeHash(word) memos = self.loadMemosByColumns({'word':word}) return len(memos)>0
def addBadWords(self): words=Bad.getBadWords() self.addAll(words)
def testBadWords(self): badWords = Bad.getBadWords() self.assertTrue('ass' in badWords) self.assertFalse('' in badWords) self.assertFalse('ok' in badWords)
def testDefaults(self): bad = Bad() self.assertEqual(bad.id, None) self.assertEqual(bad.word, None)
def testHashEquiv(self): bad1 = Bad({'word': 'x'}) bad2 = Bad({'word': 'x'}) bad3 = Bad({'word': 'y'}) self.assertTrue(bad1.equals(bad2)) self.assertFalse(bad1.equals(bad3)) bad2.hash() bad3.hash() self.assertTrue(bad1.equals(bad2)) self.assertFalse(bad1.equals(bad3))
def testWordMemo(self): bad = Bad() bad.update({'word': '#@$!'}) self.assertEqual(bad.word, '#@$!') self.assertEqual(bad.memo['word'], '#@$!')
def testWordProperty(self): bad = Bad() bad.word = '#@$!' self.assertEqual(bad.word, '#@$!') self.assertEqual(bad.memo['word'], '#@$!')
def testIdMemo(self): bad = Bad() bad.update({'id': 21}) self.assertEqual(bad.id, 21) self.assertEqual(bad.memo['id'], 21)
def testIdProperty(self): bad = Bad() bad.id = 21 self.assertEqual(bad.id, 21) self.assertEqual(bad.memo['id'], 21)