Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigigraph / vigigraph / tests / functional / test_opensearch.py @ 8bdfad89

History | View | Annotate | Download (2.7 KB)

1
# -*- coding: utf-8 -*-
2
"""
3
Teste l'utilisation du module de recherche
4
OpenSearch intégré au navigateur.
5
"""
6
import transaction
7

    
8
from vigigraph.tests import TestController
9
from vigilo.models.session import DBSession
10
from vigilo.models.tables import Host, SupItemGroup, Graph, GraphGroup
11

    
12
from vigigraph.tests.functional.test_host_selection_form import populateDB
13
from vigigraph.tests.functional.test_graph_selection_form import addGraphs
14

    
15

    
16
class TestOpenSearch(TestController):
17
    """
18
    Teste la page d'affichage de tous les graphs d'un hôte.
19
    """
20

    
21
    def setUp(self):
22
        """Préparation de la base de données de tests."""
23

    
24
        # Initialisation de la base
25
        super(TestOpenSearch, self).setUp()
26

    
27
        # Ajout de données de tests dans la base
28
        (host1, host2, host3) = populateDB()
29

    
30
        # Ajout de graphes dans la base
31
        addGraphs(host1, host2, host3)
32

    
33
        # Validation des ajouts dans la base
34
        DBSession.flush()
35
        transaction.commit()
36

    
37
    def _check_results(self, user, hosts):
38
        response = self.app.get(
39
            '/rpc/searchHost?query=host*',
40
            extra_environ={"REMOTE_USER": user}
41
        )
42
        for host in hosts:
43
            if hosts[host]:
44
                self.assertTrue(
45
                    '/rpc/fullHostPage?host=%s' % host
46
                    in response.body
47
                )
48
            else:
49
                self.assertTrue(
50
                    '/rpc/fullHostPage?host=%s' % host
51
                    not in response.body
52
                )
53

    
54
    def test_direct_permission(self):
55
        """OpenSearch avec permission sur le groupe"""
56
        hosts = {
57
            'host1': False,
58
            'host2': True,
59
            'host3': False,
60
        }
61
        self._check_results('user', hosts)
62

    
63
    def test_permission_on_parent(self):
64
        """OpenSearch avec permission sur le parent du groupe"""
65
        hosts = {
66
            'host1': True,
67
            'host2': True,
68
            'host3': True,
69
        }
70
        self._check_results('poweruser', hosts)
71

    
72
    def test_no_permission(self):
73
        """OpenSearch sans permissions"""
74
        hosts = {
75
            'host1': False,
76
            'host2': False,
77
            'host3': False,
78
        }
79
        self._check_results('visitor', hosts)
80

    
81
    def test_anonymous(self):
82
        """OpenSearch en anonyme"""
83
        for host in ('host1', 'host2', 'host3'):
84
            response = self.app.get(
85
                '/rpc/fullHostPage?host=%s' % host,
86
                status=401
87
            )
88

    
89
    def test_managers(self):
90
        """OpenSearch avec le compte manager"""
91
        hosts = {
92
            'host1': True,
93
            'host2': True,
94
            'host3': True,
95
        }
96
        self._check_results('manager', hosts)