def setUp(self): # WTF: how does knowledge base get in here?? self.aq = Acquirer() self.double = lambda x: 2 * x self.prov = Provider( resources={"string": "Just a string", "func": self.double}, acquirer=self.aq)
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
class TestProvider(unittest.TestCase): def setUp(self): # WTF: how does knowledge base get in here?? self.aq = Acquirer() self.double = lambda x: 2 * x self.prov = Provider( resources={"string": "Just a string", "func": self.double}, acquirer=self.aq) def test_provision(self): self.assertEqual( self.aq.resources(), {"string": "Just a string", "func": self.double}) def tearDown(self): pass
def setUp(self): self.fe = Acquirer() # A dumb frontend self.kb = KnowledgeBase(frontend=self.fe)