Changeset 61220 in vbox for trunk/src/VBox/ValidationKit/testmanager/webui
- Timestamp:
- May 27, 2016 1:16:02 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 107509
- Location:
- trunk/src/VBox/ValidationKit/testmanager/webui
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadmin.py
r61217 r61220 130 130 ksActionBuildBlacklistEditPost = 'BuildBlacklistEditPost'; 131 131 132 ksActionFailureCategoryList = 'FailureCategoryList' 133 ksActionFailureCategoryShowAdd = 'FailureCategoryShowAdd' 134 ksActionFailureCategoryShowEdit = 'FailureCategoryShowEdit' 135 ksActionFailureCategoryAdd = 'FailureCategoryAdd' 136 ksActionFailureCategoryEdit = 'FailureCategoryEdit' 137 ksActionFailureCategoryDel = 'FailureCategoryDel' 132 ksActionFailureCategoryList = 'FailureCategoryList'; 133 ksActionFailureCategoryAdd = 'FailureCategoryAdd'; 134 ksActionFailureCategoryAddPost = 'FailureCategoryAddPost'; 135 ksActionFailureCategoryDetails = 'FailureCategoryDetails'; 136 ksActionFailureCategoryDoRemove = 'FailureCategoryDoRemove'; 137 ksActionFailureCategoryEdit = 'FailureCategoryEdit'; 138 ksActionFailureCategoryEditPost = 'FailureCategoryEditPost'; 138 139 139 140 ksActionFailureReasonList = 'FailureReasonList' 141 ksActionFailureReasonAdd = 'FailureReasonAdd' 142 ksActionFailureReasonAddPost = 'FailureReasonAddPost' 140 143 ksActionFailureReasonDetails = 'FailureReasonDetails' 141 ksActionFailureReasonShowAdd = 'FailureReasonShowAdd' 142 ksActionFailureReasonShowEdit = 'FailureReasonShowEdit' 143 ksActionFailureReasonAdd = 'FailureReasonAdd' 144 ksActionFailureReasonDoRemove = 'FailureReasonDoRemove' 144 145 ksActionFailureReasonEdit = 'FailureReasonEdit' 145 ksActionFailureReason Del = 'FailureReasonDel'146 ksActionFailureReasonEditPost = 'FailureReasonEditPost' 146 147 147 148 ksActionBuildSrcList = 'BuildSrcList' … … 329 330 # Failure Category actions 330 331 # 331 d[self.ksActionFailureCategoryList] = lambda: self._actionGenericListing( 332 FailureCategoryLogic, 333 WuiFailureCategoryList) 334 335 d[self.ksActionFailureCategoryShowAdd] = lambda: self._actionGenericFormAdd( 336 FailureCategoryData, 337 WuiFailureCategory) 338 339 d[self.ksActionFailureCategoryShowEdit] = lambda: self._actionGenericFormEditL( 340 FailureCategoryLogic, 341 FailureCategoryData.ksParam_idFailureCategory, 342 WuiFailureCategory) 343 344 d[self.ksActionFailureCategoryAdd] = lambda: self._actionGenericFormAddPost( 345 FailureCategoryData, 346 FailureCategoryLogic, 347 WuiFailureCategory, 348 self.ksActionFailureCategoryList) 349 350 d[self.ksActionFailureCategoryEdit] = lambda: self._actionGenericFormEditPost( 351 FailureCategoryData, 352 FailureCategoryLogic, 353 WuiFailureCategory, 354 self.ksActionFailureCategoryList) 355 356 d[self.ksActionFailureCategoryDel] = lambda: self._actionGenericDoDelOld( 357 FailureCategoryLogic, 358 FailureCategoryData.ksParam_idFailureCategory, 359 self.ksActionFailureCategoryList) 332 d[self.ksActionFailureCategoryList] = \ 333 lambda: self._actionGenericListing(FailureCategoryLogic, WuiFailureCategoryList); 334 d[self.ksActionFailureCategoryAdd] = \ 335 lambda: self._actionGenericFormAdd(FailureCategoryData, WuiFailureCategory); 336 d[self.ksActionFailureCategoryAddPost] = \ 337 lambda: self._actionGenericFormAddPost(FailureCategoryData, FailureCategoryLogic, WuiFailureCategory, 338 self.ksActionFailureCategoryList) 339 d[self.ksActionFailureCategoryDetails] = \ 340 lambda: self._actionGenericFormDetails(FailureCategoryData, FailureCategoryLogic, WuiFailureCategory); 341 342 d[self.ksActionFailureCategoryDoRemove] = \ 343 lambda: self._actionGenericDoRemove(FailureCategoryLogic, FailureCategoryData.ksParam_idFailureCategory, 344 self.ksActionFailureCategoryList); 345 d[self.ksActionFailureCategoryEdit] = \ 346 lambda: self._actionGenericFormEdit(FailureCategoryData, WuiFailureCategory, 347 FailureCategoryData.ksParam_idFailureCategory); 348 d[self.ksActionFailureCategoryEditPost] = \ 349 lambda: self._actionGenericFormEditPost(FailureCategoryData, FailureCategoryLogic, WuiFailureCategory, 350 self.ksActionFailureCategoryList); 360 351 361 352 # 362 353 # Failure Reason actions 363 354 # 364 d[self.ksActionFailureReasonList] = lambda: self._actionGenericListing( 365 FailureReasonLogic, 366 WuiAdminFailureReasonList) 367 368 d[self.ksActionFailureReasonDetails] = lambda: self._actionGenericFormDetails(FailureReasonData, 369 FailureReasonLogic, 370 WuiAdminFailureReason, 371 'idFailureReason'); 372 d[self.ksActionFailureReasonShowEdit] = lambda: self._actionGenericFormEditL( 373 FailureReasonLogic, 374 FailureReasonData.ksParam_idFailureReason, 375 WuiAdminFailureReason) 376 377 d[self.ksActionFailureReasonAdd] = lambda: self._actionGenericFormAddPost( 378 FailureReasonData, 379 FailureReasonLogic, 380 WuiAdminFailureReason, 381 self.ksActionFailureReasonList) 382 383 d[self.ksActionFailureReasonEdit] = lambda: self._actionGenericFormEditPost( 384 FailureReasonData, 385 FailureReasonLogic, 386 WuiAdminFailureReason, 387 self.ksActionFailureReasonList) 388 389 d[self.ksActionFailureReasonDel] = lambda: self._actionGenericDoDelOld(FailureReasonLogic, 390 FailureReasonData.ksParam_idFailureReason, 391 self.ksActionFailureReasonList) 355 d[self.ksActionFailureReasonList] = \ 356 lambda: self._actionGenericListing(FailureReasonLogic, WuiAdminFailureReasonList) 357 358 d[self.ksActionFailureReasonAdd] = \ 359 lambda: self._actionGenericFormAdd(FailureReasonData, WuiAdminFailureReason); 360 d[self.ksActionFailureReasonAddPost] = \ 361 lambda: self._actionGenericFormAddPost(FailureReasonData, FailureReasonLogic, WuiAdminFailureReason, 362 self.ksActionFailureReasonList); 363 d[self.ksActionFailureReasonDetails] = \ 364 lambda: self._actionGenericFormDetails(FailureReasonData, FailureReasonLogic, WuiAdminFailureReason); 365 d[self.ksActionFailureReasonDoRemove] = \ 366 lambda: self._actionGenericDoRemove(FailureReasonLogic, FailureReasonData.ksParam_idFailureReason, 367 self.ksActionFailureReasonList); 368 d[self.ksActionFailureReasonEdit] = \ 369 lambda: self._actionGenericFormEdit(FailureReasonData, WuiAdminFailureReason); 370 371 d[self.ksActionFailureReasonEditPost] = \ 372 lambda: self._actionGenericFormEditPost(FailureReasonData, FailureReasonLogic, WuiAdminFailureReason,\ 373 self.ksActionFailureReasonList) 392 374 393 375 # … … 466 448 [ 'Failure Categories', self._sActionUrlBase + self.ksActionFailureCategoryList ], 467 449 [ 'Failure Reasons', self._sActionUrlBase + self.ksActionFailureReasonList ], 468 [ 'New Failure Category', self._sActionUrlBase + self.ksActionFailureCategory ShowAdd ],469 [ 'New Failure Reason', self._sActionUrlBase + self.ksActionFailureReason ShowAdd ],450 [ 'New Failure Category', self._sActionUrlBase + self.ksActionFailureCategoryAdd ], 451 [ 'New Failure Reason', self._sActionUrlBase + self.ksActionFailureReasonAdd ], 470 452 ] 471 453 ], -
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildblacklist.py
r56295 r61220 73 73 from testmanager.webui.wuiadmin import WuiAdmin 74 74 raise WuiException('Please <a href="%s?%s=%s">add</a> some Failure Reasons first.' 75 % (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, WuiAdmin.ksActionFailureReason ShowAdd));75 % (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, WuiAdmin.ksActionFailureReasonAdd)); 76 76 77 77 asTypes = self.getListOfItems(self.asTypes, oData.asTypes) -
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurereason.py
r56295 r61220 48 48 """ 49 49 50 sTitle = 'Failure Reason'; 50 51 if sMode == WuiFormContentBase.ksMode_Add: 51 sTitle = 'Add Failure Reason' 52 sSubmitAction = oDisp.ksActionFailureReasonAdd 52 sTitle = 'Add' + sTitle; 53 53 elif sMode == WuiFormContentBase.ksMode_Edit: 54 sTitle = 'Edit Failure Reason' 55 sSubmitAction = oDisp.ksActionFailureReasonEdit 54 sTitle = 'Edit' + sTitle; 56 55 else: 57 raise WuiException('Unknown parameter')56 assert sMode == WuiFormContentBase.ksMode_Show; 58 57 59 WuiFormContentBase.__init__(self, oFailureReasonData, sMode, 'FailureReason', oDisp, sTitle, 60 sSubmitAction = sSubmitAction, fEditable = False); ## @todo non-standard action names. 58 WuiFormContentBase.__init__(self, oFailureReasonData, sMode, 'FailureReason', oDisp, sTitle); 61 59 62 60 def _populateForm(self, oForm, oData): … … 69 67 from testmanager.webui.wuiadmin import WuiAdmin 70 68 sExceptionMsg = 'Please <a href="%s?%s=%s">add</a> Failure Category first.' % \ 71 (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, WuiAdmin.ksActionFailureCategory ShowAdd)69 (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, WuiAdmin.ksActionFailureCategoryAdd) 72 70 73 71 raise WuiException(sExceptionMsg) … … 90 88 91 89 return True 90 92 91 93 92 class WuiAdminFailureReasonList(WuiListContentBase): … … 117 116 oEntry.iTicket, 118 117 oEntry.asUrls, 119 [ WuiTmLink('Modify', WuiAdmin.ksScriptName, 120 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonShowEdit, 118 [ WuiTmLink('Details', WuiAdmin.ksScriptName, 119 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonDetails, 120 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason } ), 121 WuiTmLink('Modify', WuiAdmin.ksScriptName, 122 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonEdit, 121 123 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason } ), 122 124 WuiTmLink('Remove', WuiAdmin.ksScriptName, 123 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonD el,125 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonDoRemove, 124 126 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason }, 125 127 sConfirm = 'Are you sure you want to remove failure reason #%d?' % (oEntry.idFailureReason,)), -
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadminsystemlog.py
r56295 r61220 52 52 oEntry = self._aoEntries[iEntry]; 53 53 54 oAction = '';55 54 if oEntry.sEvent == SystemLogData.ksEvent_TestBoxUnknown \ 56 55 and oEntry.sLogText.find('addr=') >= 0 \ … … 69 68 { WuiAdmin.ksParamAction: WuiAdmin.ksActionUserAdd, 70 69 UserAccountData.ksParam_sLoginName: sUserName }); 70 else: 71 oAction = ''; # pylint: disable=R0204 71 72 72 73 return [oEntry.tsCreated, oEntry.sEvent, oEntry.sLogText, oAction]; -
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadmintestbox.py
r56295 r61220 34 34 35 35 # Validation Kit imports. 36 from common import utils; 36 37 from testmanager.webui.wuicontentbase import WuiListContentWithActionBase, WuiFormContentBase, WuiLinkBase, WuiSvnLink, \ 37 38 WuiTmLink, WuiSpanText, WuiRawHtml; … … 40 41 from testmanager.core.testbox import TestBoxData; 41 42 from testmanager.core.testset import TestSetData; 42 from common import utils;43 43 from testmanager.core.db import isDbTimestampInfinity; 44 44 … … 215 215 else: 216 216 from testmanager.webui.wuimain import WuiMain; 217 oState = WuiTmLink(oEntry.oStatus.enmState, WuiMain.ksScriptName, 217 oState = WuiTmLink(oEntry.oStatus.enmState, WuiMain.ksScriptName, # pylint: disable=R0204 218 218 { WuiMain.ksParamAction: WuiMain.ksActionTestResultDetails, 219 219 TestSetData.ksParam_idTestSet: oEntry.oStatus.idTestSet, }, -
trunk/src/VBox/ValidationKit/testmanager/webui/wuibase.py
r61217 r61220 36 36 from common import webutils, utils; 37 37 from testmanager import config; 38 from testmanager.core.base import ModelDataBase, TMExceptionBase;38 from testmanager.core.base import ModelDataBase, ModelLogicBase, TMExceptionBase; 39 39 from testmanager.core.db import TMDatabaseConnection; 40 40 from testmanager.core.systemlog import SystemLogLogic, SystemLogData; … … 733 733 oFormType is a WuiFormContentBase child class. 734 734 """ 735 assert issubclass(oDataType, ModelDataBase); 736 from testmanager.webui.wuicontentbase import WuiFormContentBase; 737 assert issubclass(oFormType, WuiFormContentBase); 738 735 739 oData = oDataType().initFromParams(oDisp = self, fStrict = False); 736 740 sRedirectTo = self.getRedirectToParameter(sRedirectTo); … … 742 746 return True 743 747 744 def _actionGenericFormDetails(self, oDataType, oLogicType, oFormType, sIdAttr , sGenIdAttr = None): # pylint: disable=R0914748 def _actionGenericFormDetails(self, oDataType, oLogicType, oFormType, sIdAttr = None, sGenIdAttr = None): # pylint: disable=R0914 745 749 """ 746 750 Generic handler for showing a details form/page. … … 751 755 sIdParamName is the name of the ID parameter (not idGen!). 752 756 """ 757 # Input. 758 assert issubclass(oDataType, ModelDataBase); 759 assert issubclass(oLogicType, ModelLogicBase); 760 from testmanager.webui.wuicontentbase import WuiFormContentBase; 761 assert issubclass(oFormType, WuiFormContentBase); 762 763 if sIdAttr is None: 764 sIdAttr = oDataType.ksIdAttr; 765 if sGenIdAttr is None: 766 sGenIdAttr = getattr(oDataType, 'ksGenIdAttr', None); 767 753 768 # Parameters. 754 769 idGenObject = -1; … … 784 799 785 800 786 def _actionGenericFormEdit(self, oDataType, oFormType, sIdParamName , sRedirectTo = None):801 def _actionGenericFormEdit(self, oDataType, oFormType, sIdParamName = None, sRedirectTo = None): 787 802 """ 788 803 Generic edit something form display request handler. … … 792 807 sIdParamName is the name of the ID parameter (not idGen!). 793 808 """ 809 assert issubclass(oDataType, ModelDataBase); 810 from testmanager.webui.wuicontentbase import WuiFormContentBase; 811 assert issubclass(oFormType, WuiFormContentBase); 812 813 if sIdParamName is None: 814 sIdParamName = getattr(oDataType, 'ksParam_' + oDataType.ksIdAttr); 815 assert len(sIdParamName) > 1; 794 816 795 817 tsNow = self.getEffectiveDateParam(); … … 839 861 sGenIdParamName is the name of the generation ID parameter, None if not applicable. 840 862 """ 863 # Input. 864 assert issubclass(oDataType, ModelDataBase); 865 from testmanager.webui.wuicontentbase import WuiFormContentBase; 866 assert issubclass(oFormType, WuiFormContentBase); 867 841 868 # Parameters. 842 869 idGenObject = -1; … … 876 903 fnLogicAction is a method taking a oDataType instance and uidAuthor as arguments. 877 904 """ 905 assert issubclass(oDataType, ModelDataBase); 906 from testmanager.webui.wuicontentbase import WuiFormContentBase; 907 assert issubclass(oFormType, WuiFormContentBase); 908 878 909 # 879 910 # Read and validate parameters. … … 883 914 self._checkForUnknownParameters(); 884 915 self._assertPostRequest(); 885 dErrors = oData.validateAndConvert(self._oDb); 916 if sMode == WuiFormContentBase.ksMode_Add and getattr(oData, 'kfIdAttrIsForForeign', False): 917 enmValidateFor = oData.ksValidateFor_AddForeignId; 918 elif sMode == WuiFormContentBase.ksMode_Add: 919 enmValidateFor = oData.ksValidateFor_Add; 920 else: 921 enmValidateFor = oData.ksValidateFor_Edit; 922 dErrors = oData.validateAndConvert(self._oDb, enmValidateFor); 886 923 if len(dErrors) == 0: 887 924 oData.convertFromParamNull(); … … 907 944 else: 908 945 oForm = oFormType(oData, sMode, oDisp = self); 946 oForm.setRedirectTo(sRedirectTo); 909 947 (self._sPageTitle, self._sPageBody) = oForm.showForm(dErrors = dErrors); 910 948 return True; … … 919 957 sRedirAction is what action to redirect to on success. 920 958 """ 959 assert issubclass(oDataType, ModelDataBase); 960 assert issubclass(oLogicType, ModelLogicBase); 961 from testmanager.webui.wuicontentbase import WuiFormContentBase; 962 assert issubclass(oFormType, WuiFormContentBase); 963 921 964 oLogic = oLogicType(self._oDb); 922 from testmanager.webui.wuicontentbase import WuiFormContentBase;923 965 return self._actionGenericFormPost(WuiFormContentBase.ksMode_Add, oLogic.addEntry, oDataType, oFormType, 924 966 '?' + webutils.encodeUrlParams({self.ksParamAction: sRedirAction}), fStrict=fStrict) … … 932 974 sRedirAction is what action to redirect to on success. 933 975 """ 976 assert issubclass(oDataType, ModelDataBase); 977 assert issubclass(oLogicType, ModelLogicBase); 978 from testmanager.webui.wuicontentbase import WuiFormContentBase; 979 assert issubclass(oFormType, WuiFormContentBase); 980 934 981 oLogic = oLogicType(self._oDb); 935 from testmanager.webui.wuicontentbase import WuiFormContentBase;936 982 return self._actionGenericFormPost(WuiFormContentBase.ksMode_Edit, oLogic.editEntry, oDataType, oFormType, 937 983 '?' + webutils.encodeUrlParams({self.ksParamAction: sRedirAction}), -
trunk/src/VBox/ValidationKit/testmanager/webui/wuifailurecategory.py
r56295 r61220 33 33 from testmanager.webui.wuicontentbase import WuiFormContentBase, WuiListContentBase, WuiTmLink 34 34 from testmanager.core.failurecategory import FailureCategoryData 35 from testmanager.webui.wuibase import WuiException36 35 37 36 … … 41 40 """ 42 41 43 def __init__(self, o FailureCategoryData, sMode, oDisp):42 def __init__(self, oData, sMode, oDisp): 44 43 """ 45 44 Prepare & initialize parent 46 45 """ 47 46 47 sTitle = 'Failure Category'; 48 48 if sMode == WuiFormContentBase.ksMode_Add: 49 sTitle = 'Add Failure Category' 50 sSubmitAction = oDisp.ksActionFailureCategoryAdd 49 sTitle = 'Add ' + sTitle; 51 50 elif sMode == WuiFormContentBase.ksMode_Edit: 52 sTitle = 'Edit Failure Category' 53 sSubmitAction = oDisp.ksActionFailureCategoryEdit 51 sTitle = 'Edit ' + sTitle; 54 52 else: 55 raise WuiException('Unknown parameter')53 assert sMode == WuiFormContentBase.ksMode_Show; 56 54 57 WuiFormContentBase.__init__(self, oFailureCategoryData, sMode, 'FailureCategory', oDisp, sTitle, 58 sSubmitAction = sSubmitAction, fEditable = False); ## @todo non-standard action names. 55 WuiFormContentBase.__init__(self, oData, sMode, 'FailureCategory', oDisp, sTitle); 59 56 60 57 def _populateForm(self, oForm, oData): … … 73 70 74 71 return True 72 75 73 76 74 class WuiFailureCategoryList(WuiListContentBase): … … 94 92 oEntry.sShort, 95 93 oEntry.sFull, 96 [ WuiTmLink('Modify', WuiAdmin.ksScriptName, 97 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryShowEdit, 94 [ WuiTmLink('Details', WuiAdmin.ksScriptName, 95 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryDetails, 96 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory }), 97 WuiTmLink('Modify', WuiAdmin.ksScriptName, 98 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryEdit, 98 99 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory }), 99 100 WuiTmLink('Remove', WuiAdmin.ksScriptName, 100 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryD el,101 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryDoRemove, 101 102 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory }, 102 103 sConfirm = 'Do you really want to remove failure cateogry #%d?' % (oEntry.idFailureCategory,)), -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpform.py
r61217 r61220 56 56 57 57 if sOnSubmit == self.ksOnSubmit_AddReturnToFieldWithCurrentUrl: 58 sOnSubmit = 'return addRedirectToInputFieldWithCurrentUrl(this)';58 sOnSubmit = u'return addRedirectToInputFieldWithCurrentUrl(this)'; 59 59 if sOnSubmit is None: sOnSubmit = u''; 60 60 else: sOnSubmit = u' onsubmit=\"%s\"' % (escapeAttr(sOnSubmit),); -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpgraph.py
r56295 r61220 100 100 # Dynamically choose implementation. 101 101 # 102 if True: 102 if True: # pylint: disable=W0125 103 103 from testmanager.webui import wuihlpgraphgooglechart as GraphImplementation; 104 104 else: -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphgooglechart.py
r56295 r61220 30 30 31 31 # Validation Kit imports. 32 from common import webutils; 32 33 from testmanager.webui.wuihlpgraphbase import WuiHlpGraphBase; 33 from common import webutils;34 from testmanager.webui import wuihlpgraphsimple; 34 35 35 36 … … 45 46 46 47 ## @todo bar graphs later. 47 from testmanager.webui import wuihlpgraphsimple;48 48 WuiHlpBarGraph = wuihlpgraphsimple.WuiHlpBarGraph; 49 49 -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphmatplotlib.py
r56295 r61220 36 36 matplotlib.use('Agg'); # Force backend. 37 37 import matplotlib.pyplot; # pylint: disable=F0401 38 from numpy import arange as numpy_arange; # pylint: disable=E0611 38 from numpy import arange as numpy_arange; # pylint: disable=E0611,E0401 39 39 40 40 # Validation Kit imports. … … 94 94 WuiHlpGraphMatplotlibBase.__init__(self, sId, oData, oDisp); 95 95 self.fpMax = None; 96 self.fpMin = 0 ;96 self.fpMin = 0.0; 97 97 self.cxBarWidth = None; 98 98 … … 138 138 139 139 aoBars = list(); 140 for i in range(len(aoSeries)):140 for i, _ in enumerate(aoSeries): 141 141 sColor = self.calcSeriesColor(i); 142 142 aoBars.append(oSubPlot.bar(oXRange + self.cxBarWidth * i, … … 157 157 oSubPlot.grid(True); 158 158 fpPadding = (fpMax - fpMin) * 0.02; 159 for i in range(len(aoBars)):159 for i, _ in enumerate(aoBars): 160 160 aoRects = aoBars[i] 161 for j in range(len(aoRects)):161 for j, _ in enumerate(aoRects): 162 162 oRect = aoRects[j]; 163 163 fpValue = float(aoTable[j + 1].aoValues[i]); … … 242 242 oSubPlot.grid(True, 'both', axis = 'x'); 243 243 244 if True: 244 if True: # pylint: disable=W0125 245 245 # oSubPlot.axis('off'); 246 246 #oSubPlot.grid(True, 'major', axis = 'none'); … … 284 284 285 285 oFigure = self._createFigure(); 286 from mpl_toolkits.axes_grid.axislines import SubplotZero; 286 from mpl_toolkits.axes_grid.axislines import SubplotZero; # pylint: disable=E0401 287 287 oAxis = SubplotZero(oFigure, 111); 288 288 oFigure.add_subplot(oAxis); -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphsimple.py
r56295 r61220 44 44 self.cxMaxBar = 480; 45 45 self.fpMax = None; 46 self.fpMin = 0 ;46 self.fpMin = 0.0; 47 47 48 48 def setRangeMax(self, fpMax): -
trunk/src/VBox/ValidationKit/testmanager/webui/wuireport.py
r56295 r61220 94 94 95 95 #for i in range(len(adPeriods) - 1, -1, -1): 96 for i in range(len(adPeriods)): 97 dStatuses = adPeriods[i]; 96 for i, dStatuses in enumerate(adPeriods): 98 97 cSuccess = dStatuses[ReportModelBase.ksTestStatus_Success] + dStatuses[ReportModelBase.ksTestStatus_Skipped]; 99 98 cTotal = cSuccess + dStatuses[ReportModelBase.ksTestStatus_Failure]; -
trunk/src/VBox/ValidationKit/testmanager/webui/wuitestresult.py
r61217 r61220 182 182 sDisplayName, 183 183 ' id="failure-%u"' % (iFailure,) if oTestResult.isFailure() else '', 184 webutils.escapeElem(oTestResult.enmStatus), webutils.escapeElem(sErrCnt), sChangeReason, 184 webutils.escapeElem(oTestResult.enmStatus), webutils.escapeElem(sErrCnt), 185 sChangeReason if oTestResult.oReason is None else '', 185 186 sResultGraph ); 186 187 iRow += 1; … … 208 209 sHtml += sChildHtml; 209 210 cErrorsBelow += oChild.cErrors; 210 211 if cErrorsBelow >= oTestResult.cErrors:212 sChangeReason = '';213 211 214 212 # Messages. … … 299 297 ' <td>%s</td>\n' \ 300 298 ' <td>%s</td>\n' \ 301 ' <td colspan="2"%s>%s%s </td>\n' \299 ' <td colspan="2"%s>%s%s%s</td>\n' \ 302 300 ' <td>%s</td>\n' \ 303 301 ' </tr>\n' \ … … 309 307 ' id="failure-%u"' % (iFailure,) if oTestResult.isFailure() else '', 310 308 webutils.escapeElem(oTestResult.enmStatus), webutils.escapeElem(sErrCnt), 309 sChangeReason if cErrorsBelow < oTestResult.cErrors and oTestResult.oReason is None else '', 311 310 sResultGraph); 312 311 iRow += 1; … … 314 313 # Failure reason. 315 314 if oTestResult.oReason is not None: 316 sReasonText = '%s / %s' % ( 317 315 sReasonText = '%s / %s' % ( oTestResult.oReason.oFailureReason.oCategory.sShort, 316 oTestResult.oReason.oFailureReason.sShort, ); 318 317 sCommentHtml = ''; 319 318 if oTestResult.oReason.sComment is not None and len(oTestResult.oReason.sComment.strip()) > 0: … … 327 326 oTestResult.idTestResult,}), 328 327 WuiContentBase.ksShortDetailsLinkHtml,); 329 330 328 331 329 sHtml += ' <tr class="%s tmtbl-events-reason tmtbl-events-lvl%s">\n' \ … … 365 363 366 364 # We need the failure reasons for the combobox. 367 aoFailureReasons = FailureReasonLogic(self._oDisp.getDb()).fetchForCombo('T odo: Figure out why');365 aoFailureReasons = FailureReasonLogic(self._oDisp.getDb()).fetchForCombo('Test Sheriff, you figure out why!'); 368 366 assert len(aoFailureReasons) > 0; 369 367
Note:
See TracChangeset
for help on using the changeset viewer.