Skip to content

Commit

Permalink
Add tests for FrameMonitorTree. (#412)
Browse files Browse the repository at this point in the history
  • Loading branch information
bcipriano authored Aug 16, 2019
1 parent b4d9d6d commit c1dc8da
Show file tree
Hide file tree
Showing 4 changed files with 279 additions and 57 deletions.
11 changes: 9 additions & 2 deletions cuegui/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,19 @@ WORKDIR /src

RUN yum -y install \
epel-release \
fontconfig \
freetype \
gcc \
libXi \
libXrender \
mesa-libGL \
python-devel
python-devel \
Xvfb

RUN yum -y install python-pip

RUN dbus-uuidgen > /etc/machine-id

COPY LICENSE ./
COPY requirements.txt ./

Expand Down Expand Up @@ -49,7 +56,7 @@ RUN cd pycue && python setup.py install

# TODO(bcipriano) Lint the code here. (Issue #78)

RUN cd cuegui && python setup.py test
RUN Xvfb :1 -screen 0 1024x768x16 &> /tmp/xvfb.log & cd cuegui && DISPLAY=:1.0 python setup.py test

RUN cp LICENSE requirements.txt VERSION cuegui/

Expand Down
114 changes: 59 additions & 55 deletions cuegui/cuegui/FrameMonitorTree.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,6 @@ def __init__(self, parent):

cuegui.AbstractTreeWidget.AbstractTreeWidget.__init__(self, parent)

# Used to build right click context menus
self.__menuActions = cuegui.MenuActions.MenuActions(
self, self.updateSoon, self.selectedObjects, self.getJob)
self.__sortByColumnCache = {}

self.itemClicked.connect(self.__itemSingleClickedCopy)
Expand Down Expand Up @@ -507,53 +504,7 @@ def _updateFrame(self, updatedFrame):

def contextMenuEvent(self, e):
"""When right clicking on an item, this raises a context menu"""

menu = QtWidgets.QMenu()

count = len(self.selectedItems())

self.__menuActions.frames().addAction(menu, "tail")
self.__menuActions.frames().addAction(menu, "view")

if count == 1:
if self.selectedObjects()[0].data.retry_count >= 1:
self.__menuActions.frames().addAction(menu, "viewLastLog")

if count >= 3:
self.__menuActions.frames().addAction(menu, "xdiff3")
elif count == 2:
self.__menuActions.frames().addAction(menu, "xdiff2")

self.__menuActions.frames().addAction(menu, "useLocalCores")

if QtGui.qApp.applicationName() == "CueCommander":
self.__menuActions.frames().addAction(menu, "viewHost")

depend_menu = QtWidgets.QMenu("&Dependencies", self)
self.__menuActions.frames().addAction(depend_menu, "viewDepends")
self.__menuActions.frames().addAction(depend_menu, "dependWizard")
self.__menuActions.frames().addAction(depend_menu, "getWhatThisDependsOn")
self.__menuActions.frames().addAction(depend_menu, "getWhatDependsOnThis")
depend_menu.addSeparator()
self.__menuActions.frames().addAction(depend_menu, "dropDepends")
self.__menuActions.frames().addAction(depend_menu, "markAsWaiting")
self.__menuActions.frames().addAction(depend_menu, "markdone")

menu.addMenu(depend_menu)
menu.addSeparator()

self.__menuActions.frames().createAction(menu, "Filter Selected Layers", None,
self._actionFilterSelectedLayers, "stock-filters")
self.__menuActions.frames().addAction(menu, "reorder")
menu.addSeparator()
self.__menuActions.frames().addAction(menu, "previewMain")
self.__menuActions.frames().addAction(menu, "previewAovs")
menu.addSeparator()
self.__menuActions.frames().addAction(menu, "retry")
self.__menuActions.frames().addAction(menu, "eat")
self.__menuActions.frames().addAction(menu, "kill")
self.__menuActions.frames().addAction(menu, "eatandmarkdone")

menu = FrameContextMenu(self, self._actionFilterSelectedLayers)
menu.exec_(e.globalPos())

def _actionFilterSelectedLayers(self):
Expand All @@ -563,6 +514,7 @@ def _actionFilterSelectedLayers(self):
results[frame.layer()] = True
self.handle_filter_layers_byLayer[str].emit(list(results.keys()))


class FrameWidgetItem(cuegui.AbstractWidgetItem.AbstractWidgetItem):
__initialized = False
def __init__(self, object, parent, job):
Expand Down Expand Up @@ -594,11 +546,6 @@ def data(self, col, role):
return self.column_info[col][cuegui.Constants.COLUMN_INFO_DISPLAY](
self._source, self.rpcObject)

# if role == QtCore.Qt.DisplayRole:
# if col not in self._cache:
# self._cache[col] = QtCore.QVariant(self.column_info[col][Constants.COLUMN_INFO_DISPLAY](self._source, self.rpcObject))
# return self._cache.get(col, Constants.QVARIANT_NULL)

elif role == QtCore.Qt.ForegroundRole:
if col == STATUS_COLUMN:
return self.__foregroundColorBlack
Expand Down Expand Up @@ -634,6 +581,7 @@ def __lt__(self, other):

return QtWidgets.QTreeWidgetItem.__lt__(self, other)


class FrameLogDataBuffer(object):
"""A cached and threaded interface to reading the last log line"""
maxCacheTime = 5
Expand Down Expand Up @@ -740,6 +688,7 @@ def __saveWork(self, work, results):
except Exception as e:
list(map(logger.warning, cuegui.Utils.exceptionOutput(e)))


class FrameEtaDataBuffer(object):
"""A cached and threaded interface to reading the last log line"""
maxCacheTime = 60
Expand Down Expand Up @@ -819,3 +768,58 @@ def __saveWork(self, work, results):
pass
except Exception as e:
list(map(logger.warning, cuegui.Utils.exceptionOutput(e)))


class FrameContextMenu(QtWidgets.QMenu):
def __init__(self, widget, filterSelectedLayersCallback):
super(FrameContextMenu, self).__init__()

self.__menuActions = cuegui.MenuActions.MenuActions(
widget, widget.updateSoon, widget.selectedObjects, widget.getJob)

count = len(widget.selectedItems())

self.__menuActions.frames().addAction(self, "tail")
self.__menuActions.frames().addAction(self, "view")

if count == 1:
if widget.selectedObjects()[0].data.retry_count >= 1:
self.__menuActions.frames().addAction(self, "viewLastLog")

if count >= 3:
self.__menuActions.frames().addAction(self, "xdiff3")
elif count == 2:
self.__menuActions.frames().addAction(self, "xdiff2")

self.__menuActions.frames().addAction(self, "useLocalCores")

if QtGui.qApp.applicationName() == "CueCommander":
self.__menuActions.frames().addAction(self, "viewHost")

depend_menu = QtWidgets.QMenu("&Dependencies", self)
self.__menuActions.frames().addAction(depend_menu, "viewDepends")
self.__menuActions.frames().addAction(depend_menu, "dependWizard")
self.__menuActions.frames().addAction(depend_menu, "getWhatThisDependsOn")
self.__menuActions.frames().addAction(depend_menu, "getWhatDependsOnThis")
depend_menu.addSeparator()
self.__menuActions.frames().addAction(depend_menu, "dropDepends")
self.__menuActions.frames().addAction(depend_menu, "markAsWaiting")
self.__menuActions.frames().addAction(depend_menu, "markdone")

self.addMenu(depend_menu)
self.addSeparator()

self.__menuActions.frames().createAction(self, "Filter Selected Layers", None,
filterSelectedLayersCallback, "stock-filters")
self.__menuActions.frames().addAction(self, "reorder")
self.addSeparator()
self.__menuActions.frames().addAction(self, "previewMain")
self.__menuActions.frames().addAction(self, "previewAovs")
self.addSeparator()
self.__menuActions.frames().addAction(self, "retry")
self.__menuActions.frames().addAction(self, "eat")
self.__menuActions.frames().addAction(self, "kill")
self.__menuActions.frames().addAction(self, "eatandmarkdone")

def exec_(self, position):
super(FrameContextMenu, self).exec_(position)
Empty file.
Loading

0 comments on commit c1dc8da

Please sign in to comment.