Project

General

Profile

Revision 35cea70e

ID35cea70e70076d5542d527cd87f33008c63f1285
Parent 52661754
Child 9c0dbb6a

Added by Thomas ANDREJAK almost 15 years ago

Correction Bug + Contrôle Pylint

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

View differences:

buildout.cfg
1
[buildout]
2
extends = buildenv/buildout-base.cfg buildenv/distrib/mes-5.cfg
3
parts += turbogears vigiboard
4
develop += .
5
eggs += vigiboard
6

  
7
[vigiboard]
8
recipe = zc.recipe.egg
9
eggs = ${buildout:eggs}
10
interpreter = python
development.ini
36 36
# DB - sqlite fails, not postgresql ready, use mysql for now
37 37
#sqlalchemy.url = sqlite:///%(here)s/devdata.db
38 38
#sqlalchemy.url=mysql://vigiboard:penmdor@localhost/vigiboard
39
sqlalchemy.url=postgres://vigiboard@localhost/vigiboard
40
#sqlalchemy.url=mysql://root:tandreja@localhost:3306/vigiboard
39
#sqlalchemy.url=postgres://vigiboard@localhost/vigiboard
40
sqlalchemy.url=mysql://root:tandreja@localhost:3306/vigiboard
41 41
#echo shouldn't be used together with the logging module.
42 42
sqlalchemy.echo = false
43 43
sqlalchemy.echo_pool = false
pylint_vigiboard.py
28 28

  
29 29
# A list of messages that should not be printed by pylint. 
30 30
SUPRESSED_MESSAGES = [
31
    'I0011', # Used when an inline option disable a message or a messages 
32
'F0401',             # category.
31
#    'I0011', # Used when an inline option disable a message or a messages category
32
    'F0401', # Used when pylint has been unable to import a module.
33 33
# If you decided to globally switch of a certain message instead of doing so
34 34
# in file or scope where its generated then you can just uncomment it here.
35 35
# Or add it if its not in the list.
......
38 38
#   'W0232', # Used when a class has no __init__ method, neither its parent 
39 39
#            # classes.
40 40
#   'W0401', # Used when `from module import *` is detected.
41
   'E0611', # Used when a name cannot be found in a module.
41 42
#   'W0611', # Used when an imported module or variable is not used.
42
#   'R0201', # Used when a method doesn't use its bound instance, and so could 
43
#            # be written as a function.
44
#   'R0801', # Indicates that a set of similar lines has been detected among 
45
#            # multiple file.
43
   'R0201', # Used when a method doesn't use its bound instance, and so could 
44
            # be written as a function.
45
#   'W0102', # Used when a mutable value as list or dictionary is detected in a default
46
   	    # value for an argument.
47
   'W0142', # Used when a function or method is called using *args or **kwargs to
48
	    # dispatch arguments. This doesn't improve readility and should be
49
	    # used with care.
50
   'R0801', # Indicates that a set of similar lines has been detected among 
51
            # multiple file.
46 52
]
47 53

  
48 54
PARAMS = [
49
    '--reports=n', '--include-ids=y', '--const-rgx=(([a-z_][a-z0-9_]*)|(__.*__))$', 
55
    #'--reports=n',
56
    '--include-ids=y',
57
    '--const-rgx=(([a-z_][a-z0-9_]*)|(__.*__))$', 
50 58
          '--disable-msg=%s' % ",".join(SUPRESSED_MESSAGES), 
51 59
]
52 60
PARAMS.extend(FILES)
vigiboard/controllers/vigiboard_ctl/vigiboard_ctl.py
3 3
"""Vigiboard Controller"""
4 4

  
5 5
import tg
6

  
6 7
from tg import expose, flash, require, request, redirect, \
7 8
                validate, tmpl_context
8 9

  
......
15 16
from vigiboard.lib.base import TGController
16 17
from vigiboard.model import DBSession
17 18

  
18
from vigiboard.model.vigiboard_bdd import *
19
from vigiboard.controllers.vigiboard_ctl.userutils import get_user_groups
19
from vigiboard.model.vigiboard_bdd import ServiceHautNiveau, HostGroups, \
20
        Events, EventHistory
21

  
20 22
from repoze.what.predicates import Any, not_anonymous
21 23

  
22 24
from vigiboard.widgets.edit_event import edit_event_status_options
23 25

  
24
from vigiboard.controllers.vigiboard_ctl import VigiboardRequest, \
25
        VigiboardRequestPlugin
26
from vigiboard.controllers.vigiboard_ctl.userutils import get_user_groups
27
from vigiboard.controllers.vigiboard_ctl.vigiboardrequest import \
28
        VigiboardRequest, VigiboardRequestPlugin
26 29

  
27 30
__all__ = ['VigiboardController']
28 31

  
......
137 140
               hist_error = False
138 141
            )
139 142
       
140
    @validate(validators={'id':validators.Int(not_empty=True)},
143
    @validate(validators={'idevent':validators.Int(not_empty=True)},
141 144
            error_handler=process_form_errors)
142 145
    @expose('json')
143 146
    @require(Any(not_anonymous(), msg=_("You need to be authenticated")))
......
271 274
                'AAClosed'])
272 275
        }, error_handler=process_form_errors)
273 276
    @require(Any(not_anonymous(), msg=_("You need to be authenticated")))
274
    def update(self,*argv,**krgv):
277
    def update(self,**krgv):
275 278
        
276 279
        """
277 280
        Mise à jour d'un évènement suivant les arguments passés.
vigiboard/controllers/vigiboard_ctl/vigiboardrequest.py
2 2
# vim:set expandtab tabstop=4 shiftwidth=4: 
3 3
"""Gestion de la requête, des plugins et de l'affichage du Vigiboard"""
4 4

  
5
from vigiboard.model.vigiboard_bdd import *
5
from vigiboard.model.vigiboard_bdd import Events, Host, Service, \
6
        HostGroups, ServiceGroups, EventHistory
6 7
from tg import tmpl_context, url
7 8
from vigiboard.model import DBSession
8 9
from sqlalchemy import not_ , and_ , asc , desc
9 10
from tw.jquery import JQueryUIDialog
10
from vigiboard.widgets.edit_event import Edit_Event_Form , Search_Form
11
from vigiboard.widgets.edit_event import EditEventForm , SearchForm
11 12
from vigiboard.controllers.vigiboard_ctl.userutils import get_user_groups
12 13
from pylons.i18n import ugettext as _
13 14

  
......
71 72
        """
72 73
        for i in argv :
73 74
            if isinstance(i, VigiboardRequestPlugin):
74
                self.add_table(*i.table)
75
                self.add_join(*i.join)
76
                self.add_outer_join(*i.outerjoin)
77
                self.add_filter(*i.filter)
78
                self.add_group_by(*i.groupby)
79
                self.add_order_by(*i.orderby)
75
                if i.table :
76
                    self.add_table(*i.table)
77
                if i.join :
78
                    self.add_join(*i.join)
79
                if i.outerjoin :
80
                    self.add_outer_join(*i.outerjoin)
81
                if i.filter :
82
                    self.add_filter(*i.filter)
83
                if i.groupby :    
84
                    self.add_group_by(*i.groupby)
85
                if i.orderby :
86
                    self.add_order_by(*i.orderby)
80 87
                self.plugin.append(i)
81 88

  
82 89
    def generate_request(self):
......
396 403
        """
397 404

  
398 405
        # Dialogue d'édition
399
        tmpl_context.edit_event_form = Edit_Event_Form('edit_event_form',
406
        tmpl_context.edit_event_form = EditEventForm('edit_event_form',
400 407
                action=url('/vigiboard/update'))
401 408
        tmpl_context.edit_eventdialog = JQueryUIDialog(id='Edit_EventsDialog',
402 409
                autoOpen=False,title=_('Edit Event'))
403 410
    
404 411
        # Dialogue de recherche
405
        tmpl_context.search_form = Search_Form('search_form',
412
        tmpl_context.search_form = SearchForm('search_form',
406 413
                action=url('/vigiboard'))
407 414
        tmpl_context.searchdialog = JQueryUIDialog(id='SearchDialog',
408 415
                autoOpen=False,title=_('Search Event'))
......
417 424
    Classe dont les plugins utilisé dans VigiboardRequest doivent étendre.
418 425
    """
419 426
    
420
    def __init__ (self, table = [], join = [], outerjoin = [], filter = [],
421
            groupby = [], orderby = [], name = '', style = {}):
427
    def __init__ (self, table = None, join = None, outerjoin = None,
428
            filters = None, groupby = None, orderby = None, name = '',
429
            style = None):
430

  
422 431
        self.table = table
423 432
        self.join = join
424 433
        self.outerjoin = outerjoin
425
        self.filter = filter
434
        self.filter = filters
426 435
        self.orderby = orderby
427 436
        self.name = name
428 437
        self.groupby = groupby
vigiboard/templates/vigiboard_event_table.html
66 66

  
67 67
<script type="text/javascript">
68 68
	function vigiboard_historydialog(idd) {
69
		$.getJSON("${tg.url('/vigiboard/history_dialog')}",{id:idd},function(json){
69
		$.getJSON("${tg.url('/vigiboard/history_dialog')}",{idevent:idd},function(json){
70 70
			$('#HistoryDialog_initial_state').html(json.initial_state);
71 71
			$('#HistoryDialog_current_state').html(json.current_state);
72 72
			$('#HistoryDialog_detailed_event').attr('href' , '${tg.url('/vigiboard/event/')}' + json.idevent);
vigiboard/tests/functional/test_userutils.py
5 5
"""
6 6
from nose.tools import assert_true
7 7

  
8
from vigiboard.model import * 
8
from vigiboard.model import DBSession, Groups, Permission, GroupPermissions 
9 9
from vigiboard.tests import TestController
10 10
from vigiboard.controllers.vigiboard_ctl import get_user_groups
11 11
from vigiboard.tests import setup_db, teardown_db
......
23 23
    teardown_db()
24 24

  
25 25
class TestUserUtils(TestController):
26
    """Test de la classe User Utils"""
26 27

  
27 28
    def test_get_user_groups(self):
28 29
        """
......
34 35
        
35 36
        DBSession.add(Groups(name="hostmanagers"))
36 37
        DBSession.add(Groups(name="hosteditors", parent="hostmanagers"))
37
        idmanagers = DBSession.query(Permission
38
                ).filter(Permission.permission_name == 'manage')[0].permission_id
38
        idmanagers = DBSession.query(Permission).filter(
39
                Permission.permission_name == 'manage')[0].permission_id
39 40
        ideditors = DBSession.query(Permission
40 41
                ).filter(Permission.permission_name == 'edit')[0].permission_id
41 42
        DBSession.add(GroupPermissions(groupname = "hostmanagers",
vigiboard/tests/functional/test_vigiboardrequest.py
5 5
"""
6 6
from nose.tools import assert_true
7 7

  
8
from vigiboard.model import *
8
from vigiboard.model import DBSession, Events, EventHistory, Groups, \
9
    Permission, GroupPermissions, Host, Service, HostGroups, ServiceGroups
9 10
from vigiboard.tests import TestController
10 11
from vigiboard.controllers.vigiboard_ctl import VigiboardRequest, \
11 12
            VigiboardRequestPlugin
......
24 25
    teardown_db()
25 26

  
26 27
class TestVigiboardRequest(TestController):
28
    """Test de la classe Vigiboard Request"""
27 29

  
28 30
    def test_creation_requete(self):
29 31
        """
......
36 38
        # les groups et leurs dépendances
37 39
        DBSession.add(Groups(name="hostmanagers"))
38 40
        DBSession.add(Groups(name="hosteditors", parent = "hostmanagers"))
39
        idmanagers = DBSession.query(Permission
40
                ).filter(Permission.permission_name == 'manage')[0].permission_id
41
        idmanagers = DBSession.query(Permission).filter(
42
                Permission.permission_name == 'manage')[0].permission_id
41 43
        ideditors = DBSession.query(Permission
42 44
                ).filter(Permission.permission_name == 'edit')[0].permission_id
43 45
        DBSession.add(GroupPermissions(groupname = "hostmanagers",
......
54 56
        event1 = Events(hostname = "monhost", servicename = "monservice")
55 57
        event2 = Events(hostname = "monhostuser", servicename = "monservice")
56 58
        event3 = Events(hostname = "monhost", servicename = "monserviceuser")
57
        event4 = Events(hostname = "monhostuser", servicename = "monserviceuser")
59
        event4 = Events(hostname = "monhostuser",
60
                servicename = "monserviceuser")
58 61

  
59 62
        # Les historiques
60 63
        DBSession.add(event1)
......
121 124
        #   le plugin fonctionne correctement
122 125

  
123 126
        num_rows = vigi_req.num_rows() 
124
        assert_true(num_rows == 2, msg = "2 historiques devrait être disponible " +\
125
                "pour l'utilisateur 'editor' mais il y en a %d" % num_rows)
127
        assert_true(num_rows == 2, msg = "2 historiques devrait " +\
128
                "être disponible pour l'utilisateur 'editor' mais il " +\
129
                "y en a %d" % num_rows)
126 130
        vigi_req.format_events(0, 10)
127 131
        vigi_req.format_history()
128 132
        assert_true(len(vigi_req.events) == 1 + 1, 
......
148 152

  
149 153
        num_rows = vigi_req.num_rows()
150 154
        assert_true(num_rows == 8, 
151
                msg = "8 historiques devrait être disponible " +\
152
                        "pour l'utilisateur 'manager' mais il y en a %d" % num_rows)
155
                msg = "8 historiques devrait être disponible pour " +\
156
                        "l'utilisateur 'manager' mais il y en a %d" % num_rows)
153 157
        vigi_req.format_events(0, 10)
154 158
        vigi_req.format_history()
155 159
        assert_true(len(vigi_req.events) == 4 + 1, 
vigiboard/tests/models/test_vigiboard.py
4 4

  
5 5
from nose.tools import assert_true
6 6
import re
7
from vigiboard.model import *
7
from vigiboard.model import DBSession, Host, Service, Events, Graph, \
8
    GraphGroups, Groups, ServiceHautNiveau, EventHistory, GraphToGroups, \
9
    GroupPermissions, HostGroups, PerfDataSource, ServiceGroups, ServiceTopo
8 10
from vigiboard.tests.models import ModelTest
9 11

  
10 12

  
......
154 156

  
155 157
    def do_get_dependencies(self):
156 158
        """Generate some data for the test"""
159
        
157 160
        DBSession.add(Service(name = "monservice"))
158 161
        DBSession.flush()
159 162
        return dict(servicename = "monservice", servicename_dep = "monservice")
......
171 174
    attrs = {}
172 175

  
173 176
    def do_get_dependencies(self):
177
        """Generate some data for the test"""
178

  
174 179
        DBSession.add(Service(name = "monservice"))
175 180
        DBSession.add(ServiceHautNiveau(servicename = "monservice",
176 181
            servicename_dep = "monservice"))
vigiboard/widgets/edit_event.py
12 12
            ['AAClosed',_('Change to Closed')]
13 13
            ]
14 14

  
15
class Edit_Event_Form(TableForm):
15
class EditEventForm(TableForm):
16 16
    
17 17
    """
18 18
    Formulaire d'édition d'évènement
......
29 29

  
30 30
    submit_text = _('Apply')
31 31

  
32
class Search_Form(TableForm):
32
class SearchForm(TableForm):
33 33
    
34 34
    """
35 35
    Formulaire de recherche dans les évènements

Also available in: Unified diff