Project

General

Profile

Revision 6f6efdcd

ID6f6efdcd325be1f197f3f271ffeef4b2bc0a4560
Parent 88cac5bb
Child 0bd9c069

Added by Francois POIROTTE about 13 years ago

Fusion du travail fait dans la branche 'nested_sets' vers le trunk.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@6116 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/tests/functional/test_history_table.py
12 12
from vigilo.models.session import DBSession
13 13
from vigilo.models.tables import Event, EventHistory, CorrEvent, \
14 14
                            Permission, StateName, Host, \
15
                            SupItemGroup, LowLevelService, \
16 15
                            Permission, DataPermission, User, \
17
                            UserGroup
16
                            LowLevelService, UserGroup
17
from vigilo.models.demo.functions import *
18 18
from vigiboard.tests import TestController
19 19

  
20 20
def populate_DB():
21 21
    """ Peuple la base de données. """
22 22
    # On ajoute un groupe d'hôtes et un groupe de services.
23
    supitemmanagers = SupItemGroup(name=u'managersgroup')
24
    DBSession.add(supitemmanagers)
25
    DBSession.flush()
23
    supitemmanagers = add_supitemgroup('managersgroup')
26 24

  
27 25
    usergroup = UserGroup.by_group_name(u'users_with_access')
28 26
    DBSession.add(DataPermission(
......
34 32

  
35 33
    # On crée un hôte de test, et on l'ajoute au groupe d'hôtes.
36 34
    managerhost = Host(
37
        name = u'managerhost',      
35
        name = u'managerhost',
38 36
        checkhostcmd = u'halt',
39 37
        snmpcommunity = u'public',
40 38
        hosttpl = u'/dev/null',
......
56 54
    DBSession.add(managerservice)
57 55
    supitemmanagers.supitems.append(managerservice)
58 56
    DBSession.flush()
59
    
57

  
60 58
    return (managerhost, managerservice)
61 59

  
62 60
def add_correvent_caused_by(supitem):
63 61
    """
64
    Ajoute dans la base de données un évènement corrélé causé 
62
    Ajoute dans la base de données un évènement corrélé causé
65 63
    par un incident survenu sur l'item passé en paramètre.
66 64
    Génère un historique pour les tests.
67 65
    """
68 66

  
69 67
    # Ajout d'un événement
70 68
    event = Event(
71
        supitem = supitem, 
69
        supitem = supitem,
72 70
        message = u'foo',
73 71
        current_state = StateName.statename_to_value(u"WARNING"),
74 72
        timestamp = datetime.now(),
......
79 77
    # Ajout des historiques
80 78
    DBSession.add(EventHistory(
81 79
        type_action=u'Nagios update state',
82
        idevent=event.idevent, 
80
        idevent=event.idevent,
83 81
        timestamp=datetime.now()))
84 82
    DBSession.add(EventHistory(
85 83
        type_action=u'Acknowlegement change state',
86
        idevent=event.idevent, 
84
        idevent=event.idevent,
87 85
        timestamp=datetime.now()))
88 86
    DBSession.flush()
89 87

  
90 88
    # Ajout d'un événement corrélé
91 89
    aggregate = CorrEvent(
92
        idcause = event.idevent, 
90
        idcause = event.idevent,
93 91
        timestamp_active = datetime.now(),
94 92
        priority = 1,
95 93
        status = u"None")
96 94
    aggregate.events.append(event)
97 95
    DBSession.add(aggregate)
98 96
    DBSession.flush()
99
    
97

  
100 98
    return event.idevent
101
    
99

  
102 100

  
103 101
class TestHistoryTable(TestController):
104 102
    """
......
144 142
        # On peuple la BDD avec un hôte, un service de bas niveau,
145 143
        # et un groupe d'hôtes et de services associés à ces items.
146 144
        (managerhost, managerservice) = populate_DB()
147
        
145

  
148 146
        # On ajoute un évènement corrélé causé par l'hôte
149 147
        idevent = add_correvent_caused_by(managerhost)
150 148
        transaction.commit()
......
158 156

  
159 157
        # L'utilisateur N'A PAS les bonnes permissions.
160 158
        environ = {'REMOTE_USER': 'limited_access'}
161
        
159

  
162 160
        # On s'attend à ce qu'une erreur 302 soit renvoyée, et à
163 161
        # ce qu'un message d'erreur précise à l'utilisateur qu'il
164 162
        # n'a pas accès aux informations concernant cet évènement.
165 163
        response = self.app.get(
166 164
            '/event/%d' % idevent,
167
            status = 302, 
165
            status = 302,
168 166
            extra_environ = environ)
169 167

  
170 168
        # On suit la redirection.
......
174 172

  
175 173
        # L'utilisateur a les bonnes permissions.
176 174
        environ = {'REMOTE_USER': 'access'}
177
        
175

  
178 176
        # On s'attend à ce que le statut de la requête soit 200.
179 177
        response = self.app.get(
180 178
            '/event/%d' % idevent,
181
            status = 200, 
179
            status = 200,
182 180
            extra_environ = environ)
183 181

  
184 182
        # Il doit y avoir 2 lignes de résultats.
......
195 193
        # On peuple la BDD avec un hôte, un service de bas niveau,
196 194
        # et un groupe d'hôtes et de services associés à ces items.
197 195
        (managerhost, managerservice) = populate_DB()
198
        
196

  
199 197
        # On ajoute un évènement corrélé causé par le service
200 198
        idevent = add_correvent_caused_by(managerservice)
201
        
199

  
202 200
        transaction.commit()
203 201

  
204 202
        # L'utilisateur n'est pas authentifié.
......
210 208

  
211 209
        # L'utilisateur N'A PAS les bonnes permissions.
212 210
        environ = {'REMOTE_USER': 'limited_access'}
213
        
211

  
214 212
        # On s'attend à ce qu'une erreur 302 soit renvoyée, et à
215 213
        # ce qu'un message d'erreur précise à l'utilisateur qu'il
216 214
        # n'a pas accès aux informations concernant cet évènement.
217 215
        response = self.app.get(
218 216
            '/event/%d' % idevent,
219
            status = 302, 
217
            status = 302,
220 218
            extra_environ = environ)
221 219

  
222 220
        # On suit la redirection.
......
226 224

  
227 225
        # L'utilisateur a les bonnes permissions.
228 226
        environ = {'REMOTE_USER': 'access'}
229
        
227

  
230 228
        # On s'attend à ce que le statut de la requête soit 200.
231 229
        response = self.app.get(
232 230
            '/event/%d' % idevent,
233
            status = 200, 
231
            status = 200,
234 232
            extra_environ = environ)
235 233

  
236 234
        # Il doit y avoir 2 lignes de résultats.
......
240 238
        rows = response.lxml.xpath(
241 239
            '//table[contains(@class,"vigitable")]/tbody/tr')
242 240
        assert_equal(len(rows), 2)
243

  

Also available in: Unified diff