~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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2009-2010 Canonical Ltd.  This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).

"""Tests for the help system integration."""

import os
import unittest

from zope.component import getUtility

from canonical.launchpad.layers import LaunchpadLayer
from canonical.launchpad.testing.systemdocs import create_view
from canonical.launchpad.webapp.interfaces import ILaunchpadApplication
from canonical.lazr.folder import ExportedFolder
from canonical.testing.layers import FunctionalLayer
from lp.answers.publisher import AnswersLayer
from lp.blueprints.publisher import BlueprintsLayer
from lp.bugs.publisher import BugsLayer
from lp.code.publisher import CodeLayer
from lp.translations.publisher import TranslationsLayer

# The root of the tree
ROOT = os.path.realpath(
        os.path.join(
            os.path.dirname(__file__), os.path.pardir, os.path.pardir,
            os.path.pardir, os.path.pardir))


class TestHelpSystemSetup(unittest.TestCase):
    """Test that all help folders are registered on +help."""
    layer = FunctionalLayer

    def assertHasHelpFolderView(self, layer, expected_folder_path):
        """Assert that layer has +help help folder registered.
        It will make sure that the path is the expected one.
        """
        root = getUtility(ILaunchpadApplication)
        view = create_view(root, '+help', layer=layer)
        self.failUnless(
            isinstance(view, ExportedFolder),
            '+help view should be an instance of ExportedFolder: %s' % view)
        self.failUnless(
            os.path.samefile(view.folder, expected_folder_path),
            "Expected help folder %s, got %s" % (
                expected_folder_path, view.folder))

    def test_answers_help_folder(self):
        self.assertHasHelpFolderView(
            AnswersLayer, os.path.join(ROOT, 'lib/lp/answers/help'))

    def test_blueprints_help_folder(self):
        self.assertHasHelpFolderView(
            BlueprintsLayer,
            os.path.join(ROOT, 'lib/lp/blueprints/help'))

    def test_bugs_help_folder(self):
        self.assertHasHelpFolderView(
            BugsLayer,
            os.path.join(ROOT, 'lib/lp/bugs/help'))

    def test_code_help_folder(self):
        self.assertHasHelpFolderView(
            CodeLayer, os.path.join(ROOT, 'lib/lp/code/help'))

    def test_registry_help_folder(self):
        self.assertHasHelpFolderView(
            LaunchpadLayer,
            os.path.join(ROOT, 'lib/lp/registry/help'))

    def test_translations_help_folder(self):
        self.assertHasHelpFolderView(
            TranslationsLayer,
            os.path.join(ROOT, 'lib/lp/translations/help'))