~launchpad-pqm/launchpad/devel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright 2011 Canonical Ltd.  This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).

"""Tests for +announcement views."""

__metaclass__ = type

from datetime import datetime

from lxml import html
from pytz import utc

from canonical.testing.layers import LaunchpadFunctionalLayer
from lp.testing import (
    normalize_whitespace,
    TestCaseWithFactory,
    )
from lp.testing.views import create_initialized_view


class TestAnnouncement(TestCaseWithFactory):

    layer = LaunchpadFunctionalLayer

    def test_announcement_info(self):
        product = self.factory.makeProduct(displayname=u"Foo")
        announcer = self.factory.makePerson(displayname=u"Bar Baz")
        announcement = product.announce(announcer, "Hello World")
        view = create_initialized_view(announcement, "+index")
        root = html.fromstring(view())
        [reg_para] = root.cssselect("p.registered")
        self.assertEqual(
            "Written for Foo by Bar Baz",
            normalize_whitespace(reg_para.text_content()))

    def test_announcement_info_with_publication_date(self):
        product = self.factory.makeProduct(displayname=u"Foo")
        announcer = self.factory.makePerson(displayname=u"Bar Baz")
        announced = datetime(2007, 01, 12, tzinfo=utc)
        announcement = product.announce(
            announcer, "Hello World", publication_date=announced)
        view = create_initialized_view(announcement, "+index")
        root = html.fromstring(view())
        [reg_para] = root.cssselect("p.registered")
        self.assertEqual(
            "Written for Foo by Bar Baz on 2007-01-12",
            normalize_whitespace(reg_para.text_content()))