Index: sitescripts/notifications/test/parser.py |
diff --git a/sitescripts/notifications/test/parser.py b/sitescripts/notifications/test/parser.py |
index bd7fff6e6720164b0a8c15aa0ac0e226eaadb7d9..8191ab9d375338eec849e81f559aec92163f42db 100644 |
--- a/sitescripts/notifications/test/parser.py |
+++ b/sitescripts/notifications/test/parser.py |
@@ -23,13 +23,14 @@ import mock |
import sitescripts.notifications.parser as parser |
-def _create_notification_archive(name, text): |
+def _create_notification_archive(files): |
archive_stream = StringIO.StringIO() |
- file_stream = StringIO.StringIO(text) |
- tar_info = tarfile.TarInfo(name) |
- tar_info.size = len(file_stream.buf) |
with tarfile.open(mode='w', fileobj=archive_stream) as archive: |
- archive.addfile(tar_info, file_stream) |
+ for name, text in files: |
+ file_stream = StringIO.StringIO(text) |
+ tar_info = tarfile.TarInfo(name) |
+ tar_info.size = len(file_stream.buf) |
+ archive.addfile(tar_info, file_stream) |
return archive_stream.getvalue() |
@@ -46,7 +47,7 @@ class TestParser(unittest.TestCase): |
def check_output_side_effect(command): |
if 'hg' in command and 'archive' in command: |
- return _create_notification_archive(*self.notification_to_load) |
+ return _create_notification_archive(self.notification_to_load) |
check_output_mock.side_effect = check_output_side_effect |
def tearDown(self): |
@@ -54,11 +55,11 @@ class TestParser(unittest.TestCase): |
self.check_output_patcher.stop() |
def test_typical(self): |
- self.notification_to_load = ('1', ''' |
+ self.notification_to_load = [('1', ''' |
severity = information |
title.en-US = The title |
message.en-US = The message |
-''') |
+''')] |
notifications = parser.load_notifications() |
self.assertEqual(len(notifications), 1) |
self.assertEqual(notifications[0]['id'], '1') |
@@ -68,28 +69,24 @@ message.en-US = The message |
self.assertNotIn('inactive', notifications[0]) |
def test_inactive(self): |
- self.notification_to_load = ('1', ''' |
-inactive = Yes |
-''') |
+ self.notification_to_load = [ |
+ ('1', '\ninactive = Yes\n'), |
+ ('2', '\ninactive = No\n'), |
+ ] |
notifications = parser.load_notifications() |
- self.assertEqual(len(notifications), 1) |
+ self.assertEqual(len(notifications), 2) |
self.assertTrue(notifications[0]['inactive']) |
- self.notification_to_load = ('1', ''' |
-inactive = No |
-''') |
- notifications = parser.load_notifications() |
- self.assertEqual(len(notifications), 1) |
- self.assertFalse(notifications[0]['inactive']) |
+ self.assertFalse(notifications[1]['inactive']) |
def test_in_range(self): |
current_time = datetime.datetime.now() |
hour_delta = datetime.timedelta(hours=1) |
start_time = current_time - hour_delta |
end_time = current_time + hour_delta |
- self.notification_to_load = ('1', ''' |
+ self.notification_to_load = [('1', ''' |
start = %s |
end = %s |
-''' % (_format_time(start_time), _format_time(end_time))) |
+''' % (_format_time(start_time), _format_time(end_time)))] |
notifications = parser.load_notifications() |
self.assertEqual(len(notifications), 1) |
self.assertEqual(notifications[0]['id'], '1') |
@@ -99,10 +96,10 @@ end = %s |
current_time = datetime.datetime.now() |
start_time = current_time - datetime.timedelta(hours=2) |
end_time = current_time - datetime.timedelta(hours=1) |
- self.notification_to_load = ('1', ''' |
+ self.notification_to_load = [('1', ''' |
start = %s |
end = %s |
-''' % (_format_time(start_time), _format_time(end_time))) |
+''' % (_format_time(start_time), _format_time(end_time)))] |
notifications = parser.load_notifications() |
self.assertEqual(len(notifications), 1) |
self.assertTrue(notifications[0]['inactive']) |
@@ -111,10 +108,10 @@ end = %s |
current_time = datetime.datetime.now() |
start_time = current_time + datetime.timedelta(hours=1) |
end_time = current_time + datetime.timedelta(hours=2) |
- self.notification_to_load = ('1', ''' |
+ self.notification_to_load = [('1', ''' |
start = %s |
end = %s |
-''' % (_format_time(start_time), _format_time(end_time))) |
+''' % (_format_time(start_time), _format_time(end_time)))] |
notifications = parser.load_notifications() |
self.assertEqual(len(notifications), 1) |
self.assertTrue(notifications[0]['inactive']) |
@@ -124,15 +121,39 @@ end = %s |
hour_delta = datetime.timedelta(hours=1) |
start_time = current_time - hour_delta |
end_time = current_time + hour_delta |
- self.notification_to_load = ('1', ''' |
+ self.notification_to_load = [('1', ''' |
start = %s |
end = %s |
-''' % (_format_time(start_time), _format_time(end_time))) |
+''' % (_format_time(start_time), _format_time(end_time)))] |
notifications = parser.load_notifications() |
self.assertEqual(len(notifications), 1) |
self.assertNotIn('inactive', notifications[0]) |
self.assertNotIn('start', notifications[0]) |
self.assertNotIn('end', notifications[0]) |
+ def test_interval(self): |
+ self.notification_to_load = [ |
+ ('1', '\ninterval = 100\n'), |
+ ('2', '\ninterval = onehundred\n'), |
+ ] |
+ notifications = parser.load_notifications() |
+ self.assertEqual(len(notifications), 1) |
+ self.assertEqual(notifications[0]['interval'], 100) |
+ |
+ def test_severity(self): |
+ self.notification_to_load = [ |
+ ('1', '\nseverity = information\n'), |
+ ('2', '\nseverity = critical\n'), |
+ ('3', '\nseverity = normal\n'), |
+ ('4', '\nseverity = relentless\n'), |
+ ] |
+ notifications = parser.load_notifications() |
+ self.assertEqual(len(notifications), 4) |
+ self.assertEqual(notifications[0]['severity'], 'information') |
+ self.assertEqual(notifications[1]['severity'], 'critical') |
+ self.assertEqual(notifications[2]['severity'], 'normal') |
+ self.assertEqual(notifications[3]['severity'], 'relentless') |
+ |
+ |
if __name__ == '__main__': |
unittest.main() |