Skip to content

Commit

Permalink
Add Unit Tests for HistoryQWidget
Browse files Browse the repository at this point in the history
Ref #255
  • Loading branch information
algorys committed Mar 9, 2018
1 parent 237cd72 commit 771e305
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 25 deletions.
2 changes: 1 addition & 1 deletion alignak_app/items/history.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def get_request_model():
return request_model

@staticmethod
def get_history_icon_name_from_message(message, event_type):
def get_history_icon_name(message, event_type):
"""
Return icon name related to message or event type
Expand Down
18 changes: 8 additions & 10 deletions alignak_app/qobjects/host/history.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,14 @@ def get_event_widget(self, hostname, event):
event_layout = QGridLayout(event_widget)

# Event icon
icon_pixmap = self.get_icon_widget(event)
icon_pixmap = self.get_icon_label(event)
event_layout.addWidget(icon_pixmap, 0, 0, 2, 1)

# Event type (with date)
event_title = QLabel()
event_title.setObjectName(History.get_history_icon_name_from_message(event['message'], event['type']))
event_title.setObjectName(
History.get_history_icon_name(event['message'], event['type'])
)
local_timestamp = get_local_datetime_from_date(event['_updated'])
created_since = get_time_diff_since_last_timestamp(local_timestamp.timestamp())

Expand All @@ -149,7 +151,7 @@ def get_event_widget(self, hostname, event):
return event_widget

@staticmethod
def get_icon_widget(event):
def get_icon_label(event):
"""
Return QWidget with corresponding icon to item state
Expand All @@ -162,7 +164,7 @@ def get_icon_widget(event):
icon_label = QLabel()
icon = QPixmap(
settings.get_image(
History.get_history_icon_name_from_message(event['message'], event['type'])
History.get_history_icon_name(event['message'], event['type'])
)
)
icon_label.setPixmap(icon)
Expand All @@ -184,13 +186,9 @@ def get_event_type(event, hostname):
:rtype: str
"""

event_type = ''
if 'service_name' in event:
if event['service_name']:
event_type = _('Service: %s') % event['service_name'].capitalize()
if event['service_name']:
event_type = _('Service: %s') % event['service_name'].capitalize()
else:
event_type = _('Host: %s') % hostname.capitalize()
if not event_type:
event_type = event['type']

return event_type
20 changes: 10 additions & 10 deletions test/test_all_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,34 +222,34 @@ def test_get_request_history_model(self):
def test_get_history_icon_name_from_message(self):
"""Get History Icon from State"""

under_test = History.get_history_icon_name_from_message('UNKNOWN', 'downtime')
under_test = History.get_history_icon_name('UNKNOWN', 'downtime')
self.assertEqual('downtime', under_test)

under_test = History.get_history_icon_name_from_message('UP', 'ack')
under_test = History.get_history_icon_name('UP', 'ack')
self.assertEqual('acknowledge', under_test)

under_test = History.get_history_icon_name_from_message('UP', 'event_type')
under_test = History.get_history_icon_name('UP', 'event_type')
self.assertEqual('hosts_up', under_test)

under_test = History.get_history_icon_name_from_message('DOWN', 'event_type')
under_test = History.get_history_icon_name('DOWN', 'event_type')
self.assertEqual('hosts_down', under_test)

under_test = History.get_history_icon_name_from_message('UNREACHABLE', 'event_type')
under_test = History.get_history_icon_name('UNREACHABLE', 'event_type')
self.assertEqual('services_unreachable', under_test)

under_test = History.get_history_icon_name_from_message('OK', 'event_type')
under_test = History.get_history_icon_name('OK', 'event_type')
self.assertEqual('services_ok', under_test)

under_test = History.get_history_icon_name_from_message('WARNING', 'event_type')
under_test = History.get_history_icon_name('WARNING', 'event_type')
self.assertEqual('services_warning', under_test)

under_test = History.get_history_icon_name_from_message('CRITICAL', 'event_type')
under_test = History.get_history_icon_name('CRITICAL', 'event_type')
self.assertEqual('services_critical', under_test)

under_test = History.get_history_icon_name_from_message('UNKNOWN', 'event_type')
under_test = History.get_history_icon_name('UNKNOWN', 'event_type')
self.assertEqual('services_unknown', under_test)

under_test = History.get_history_icon_name_from_message('error', 'event_type')
under_test = History.get_history_icon_name('error', 'event_type')
self.assertEqual('error', under_test)

def test_get_request_user_model(self):
Expand Down
56 changes: 53 additions & 3 deletions test/test_history_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import sys

import unittest2
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.Qt import QApplication, QWidget, QLabel, QSize

from alignak_app.backend.datamanager import data_manager
from alignak_app.items.history import History
Expand Down Expand Up @@ -52,10 +52,10 @@ class TestHistoryQWidget(unittest2.TestCase):
'service_name': 'Load',
'type': 'downtime.add',
'message': 'Service Load acknowledged by admin, from Alignak-app',
},
},
{
'_updated': 'Tue, 19 Sep 2017 13:05:26 GMT',
'service_name': 'Memory',
'service_name': '',
'type': 'check.result',
'message': 'UNREACHABLE[HARD] (False/False): ERROR: netsnmp : No response from ...',
},
Expand Down Expand Up @@ -84,9 +84,59 @@ def test_initialize(self):

self.assertIsNone(under_test.layout())
self.assertIsInstance(under_test.app_widget, AppQFrame)
self.assertIsNotNone(under_test.table_headers)
self.assertIsNotNone(under_test.history_title)

data_manager.database['history'].append(self.history_test)
under_test.initialize()

self.assertIsNotNone(under_test.layout())
self.assertEqual(under_test.app_widget.windowTitle(), "History")
self.assertIsInstance(under_test.app_widget, AppQFrame)
self.assertIsNotNone(under_test.table_headers)
self.assertIsNotNone(under_test.history_title)

def test_update_history_data(self):
"""Update History QTableWidget Data"""

under_test = HistoryQWidget()
under_test.initialize()

for i in range(0, len(self.history_test.data)):
self.assertIsNone(under_test.history_table.cellWidget(i, 0))

under_test.update_history_data('hostname', self.history_test)

for i in range(0, len(self.history_test.data)):
self.assertIsNotNone(under_test.history_table.cellWidget(i, 0))

def test_get_event_widget(self):
"""Get Event History QWidget"""

under_test = HistoryQWidget()

event_test = self.history_data_test[0]

event_widget_test = under_test.get_event_widget('hostname', event_test)

self.assertIsInstance(event_widget_test, QWidget)
self.assertEqual('history', event_widget_test.objectName())

def test_get_icon_label(self):
"""Get History Icon QLabel"""

under_test = HistoryQWidget.get_icon_label(self.history_data_test[0])

self.assertEqual(QSize(32, 32), under_test.size())
self.assertIsInstance(under_test, QLabel)

def test_get_event_type(self):
"""Get Event History Type """

under_test = HistoryQWidget.get_event_type(self.history_data_test[0], 'hostname')

self.assertEqual('Service: Load', under_test)

under_test = HistoryQWidget.get_event_type(self.history_data_test[2], 'hostname')

self.assertEqual('Host: Hostname', under_test)
1 change: 0 additions & 1 deletion test/test_host_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
from alignak_app.locales.locales import init_localization
from alignak_app.qobjects.host.host import HostQWidget

# app = QApplication(sys.argv)
init_localization()
data_manager.database['user'] = User()
data_manager.database['user'].create('_id', {}, 'name')
Expand Down

0 comments on commit 771e305

Please sign in to comment.