Project

General

Profile

Revision 0bd9c069

ID0bd9c06917b20932fbfd6f30384dd5018c50f3e6
Parent 6f6efdcd
Child 6707e733

Added by Francois POIROTTE about 13 years ago

Retrait des modifications liées à la fusion de la branche nested_sets du trunk (révisions r6116, r6121 et r6129).
Le nouveau mécanisme nécessite encore des ajustements pour être utilisable.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@6135 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, \
15 16
                            Permission, DataPermission, User, \
16
                            LowLevelService, UserGroup
17
from vigilo.models.demo.functions import *
17
                            UserGroup
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 = add_supitemgroup('managersgroup')
23
    supitemmanagers = SupItemGroup(name=u'managersgroup')
24
    DBSession.add(supitemmanagers)
25
    DBSession.flush()
24 26

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

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

  
59
    
58 60
    return (managerhost, managerservice)
59 61

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

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

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

  
99
    
98 100
    return event.idevent
99

  
101
    
100 102

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

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

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

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

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

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

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

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

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

  
201
        
200 202
        transaction.commit()
201 203

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

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

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

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

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

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

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

  

Also available in: Unified diff