| Index: scripts/master/unittests/status_logger_test.py
|
| diff --git a/scripts/master/unittests/status_logger_test.py b/scripts/master/unittests/status_logger_test.py
|
| index 75790ec10276c048b6afe02c35b09c931b8cfadf..95af8f20e60a00d8c94d61756a6b3199a0c60a41 100755
|
| --- a/scripts/master/unittests/status_logger_test.py
|
| +++ b/scripts/master/unittests/status_logger_test.py
|
| @@ -34,6 +34,9 @@ class SourceStamp(object):
|
|
|
|
|
| class Build(object):
|
| + def __init__(self, steps=None):
|
| + self.__steps = steps or []
|
| +
|
| def getNumber(self):
|
| return 5
|
|
|
| @@ -53,20 +56,26 @@ class Build(object):
|
| return SourceStamp()
|
|
|
| def getSteps(self):
|
| - return []
|
| + return self.__steps
|
|
|
| def getTimes(self):
|
| return 5000, 6000
|
|
|
|
|
| class Step(object):
|
| - step_number = 8
|
| + def __init__(self, step_number=8, result=0):
|
| + self.step_number = step_number
|
| + self.__result = result
|
| +
|
| def getName(self):
|
| return 'reticulating_splines'
|
|
|
| def getTimes(self):
|
| return 5100, 5500
|
|
|
| + def getResults(self):
|
| + return (self.__result, None)
|
| +
|
|
|
| @contextlib.contextmanager
|
| def _make_logger(file_content=None):
|
| @@ -175,17 +184,35 @@ class StatusLoggerTest(unittest.TestCase):
|
| 'file_logging': True,
|
| 'event_logging': True,
|
| }
|
| + steps = [Step(step_number=1),
|
| + Step(step_number=2, result=1),
|
| + Step(step_number=3)]
|
| with _make_logger(config_dict) as logger:
|
| - logger.stepFinished(Build(), Step(), [0])
|
| + logger.stepFinished(Build(steps=steps), steps[-1], [0])
|
| self.assertTrue(os.path.exists(logger.logfile))
|
| self.assertTrue(os.path.isdir(logger._event_logging_dir))
|
| self.assertTrue(os.path.exists(logger._event_logfile))
|
| +
|
| # Ensure we added valid json
|
| with open(logger._event_logfile, 'r') as f:
|
| content = f.read()
|
| self.assertTrue(content)
|
| json.loads(content)
|
|
|
| + # Ensure we wrote the correct json line.
|
| + expected = {
|
| + "slave": "cool-m1",
|
| + "builder": "coconuts",
|
| + "timestamp": 5500,
|
| + "step_result": "success",
|
| + "subproject_tag": "whatever",
|
| + "project_id": "whatever",
|
| + }
|
| + with open(logger._ts_mon_logfile, 'r') as f:
|
| + line = f.read()
|
| + d = json.loads(line)
|
| + self.assertEqual(expected, d)
|
| +
|
|
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|