Exemplo n.º 1
0
    def test_header_simple(self, read_part):
        """
        header() should output only page start text if no requires_headers.

        """
        page = Page()
        header = page.header()
        self.assertEqual(0, read_part.call_count)
        self.assertEqual(header,
                         'MockPageStart\n')
Exemplo n.º 2
0
    def test_header_include_parts(self, read_part):
        """
        Page.header() should call read_part for appropriate parts.

        """
        read_part.side_effect = ['part_1', 'part_2', 'part_3']
        page = Page()
        ps_object_1 = Mock()
        ps_object_1.required_parts = ['foo']
        ps_object_2 = Mock()
        ps_object_2.required_parts = ['foo', 'bar', 'bang']
        page.extend(ps_object_1, ps_object_2)
        header = page.header()
        # Access to parts is unordered, strictly speaking
        parts_requested = [kwargs['name'] for args, kwargs in
                            read_part.call_args_list]
        self.assertEqual(len(parts_requested), 3)  # No repeat requests
        self.assertEqual(set(parts_requested),
                         set(['foo', 'bar', 'bang']))
        self.assertEqual(header,
                         'MockPageStart\n'
                         'part_1\n'
                         'part_2\n'
                         'part_3\n')