Ejemplo n.º 1
0
class TestHN(unittest.TestCase):
    def run_hnmail(self):
        """
        Build a MDA, run tests with given TreeAPI and return delivered messages.
        """
        mda = ListMDA()
        hnmail.run(network=self.api, mda=mda, quiet=True)
        return mda.msgs

    def setUp(self):
        self.api = TreeAPI()

    def test_get_empty(self):
        msgs = self.run_hnmail()
        self.assertEquals(msgs, [])

    def test_one_message(self):
        msg = Message(url='example.com', title='an example')
        self.api.add_disc(msg)
        msgs = self.run_hnmail()
        self.assertEquals(len(msgs), 1)

    def test_comment(self):
        msg1 = Message(url='example.com', title='an example')
        id1 = self.api.add_disc(msg1)
        msg2 = Message(text='A comment')
        id2 = self.api.add_to(id1, msg2)
        msgs = self.run_hnmail()
        self.assertEquals(len(msgs), 2)

    def test_limit(self):
        root = self.api.add_disc(Message(url='example.com', title='an example'))
        n = 20
        for i in xrange(0, n):
            msg = Message(text='A comment')
            self.api.add_to(root, msg)
        msgs = self.api.search({'limit': 10})
        self.assertEquals(len(msgs['results']), 10)

    def test_wide_disc(self):
        root = self.api.add_disc(Message(url='example.com', title='an example'))
        n = 20
        for i in xrange(0, n):
            msg = Message(text='A comment')
            self.api.add_to(root, msg)
        msgs = self.run_hnmail()
        self.assertEquals(len(msgs), 1+n)

    def test_deep_disc(self):
        """
        Ensure that thread fetching handles situations like

            R
            +-- A
            |   +-- A1
            |   +-- A2
            |
            +-- B
                +-- B1
                +-- B2
        """
        r  = self.api.add_disc(Message(url='example.com', title='an example'))
        a  = self.api.add_to(r, Message(text='A comment'))
        a1 = self.api.add_to(a, Message(text='A comment'))
        a2 = self.api.add_to(a, Message(text='A comment'))
        b  = self.api.add_to(r, Message(text='A comment'))
        b1 = self.api.add_to(b, Message(text='A comment'))
        b2 = self.api.add_to(b, Message(text='A comment'))
        msgs = self.run_hnmail()
        self.assertEquals(len(msgs), 7)
Ejemplo n.º 2
0
 def setUp(self):
     self.api = TreeAPI()