class TestKnowledgebase(unittest.TestCase): def setUp(self): self.fe = Acquirer() # A dumb frontend self.kb = KnowledgeBase(frontend=self.fe) def test_get(self): self.assertEquals(self.fe.resources()['get'], self.kb.get) def test_get_attributes(self): f = self.fe.resources()['get-attributes'] self.assertIn("BIRTH-DATE", f("wikipedia-president", "Bill Clinton")) def test_attributes_format(self): attrs = self.fe.resources()['get-attributes']("wikipedia-president", "Bill Clinton") for a in CLINTON_ATTRS: self.assertIn(a, attrs) def test_classes(self): self.assertIn("wikipedia-president", str(self.fe.resources()['get-classes']("Bill Clinton"))) # The list gets iterated and memoization fails. self.assertIn("wikipedia-president", str(self.fe.resources()['get-classes']("Bill Clinton")), "Second time failed. Memoization problem") def test_types(self): types = self.fe.resources()['get-types']("Bill Clinton") self.assertIn('officeholder', types) self.assertIn('president', types) def test_categories(self): self.assertIn("Presidents of the United States", self.fe.resources()['get-categories']("Bill Clinton")) def test_sort_symbols(self): ench = self.fe.resources()['sort-symbols']("Mary Shakespeare", "Batman") self.assertIs(type(ench), LispList) self.assertEqual(ench.val, ["Batman", "Mary Shakespeare"]) def test_synonyms(self): self.assertIn("batman", self.kb.synonyms("bat man")) def tearDown(self): pass
def setUp(self): self.fe = Acquirer() # A dumb frontend self.kb = KnowledgeBase(frontend=self.fe)