Example #1
0
 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
Example #3
0
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)