Revision 0bd9c069
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
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