diff options
Diffstat (limited to 'cros_utils/bugs_test.py')
-rwxr-xr-x | cros_utils/bugs_test.py | 211 |
1 files changed, 109 insertions, 102 deletions
diff --git a/cros_utils/bugs_test.py b/cros_utils/bugs_test.py index 03dee64d..5a07dbd8 100755 --- a/cros_utils/bugs_test.py +++ b/cros_utils/bugs_test.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright 2021 The Chromium OS Authors. All rights reserved. +# Copyright 2021 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -17,108 +17,115 @@ import bugs class Tests(unittest.TestCase): - """Tests for the bugs module.""" - def testWritingJSONFileSeemsToWork(self): - """Tests JSON file writing.""" - old_x20_path = bugs.X20_PATH - - def restore_x20_path(): - bugs.X20_PATH = old_x20_path - - self.addCleanup(restore_x20_path) - - with tempfile.TemporaryDirectory() as tempdir: - bugs.X20_PATH = tempdir - file_path = bugs._WriteBugJSONFile( - 'ObjectType', { - 'foo': 'bar', - 'baz': bugs.WellKnownComponents.CrOSToolchainPublic, - }) - - self.assertTrue(file_path.startswith(tempdir), - f'Expected {file_path} to start with {tempdir}') - - with open(file_path) as f: - self.assertEqual( - json.load(f), - { - 'type': 'ObjectType', - 'value': { - 'foo': 'bar', - 'baz': int(bugs.WellKnownComponents.CrOSToolchainPublic), + """Tests for the bugs module.""" + + def testWritingJSONFileSeemsToWork(self): + """Tests JSON file writing.""" + old_x20_path = bugs.X20_PATH + + def restore_x20_path(): + bugs.X20_PATH = old_x20_path + + self.addCleanup(restore_x20_path) + + with tempfile.TemporaryDirectory() as tempdir: + bugs.X20_PATH = tempdir + file_path = bugs._WriteBugJSONFile( + "ObjectType", + { + "foo": "bar", + "baz": bugs.WellKnownComponents.CrOSToolchainPublic, }, + ) + + self.assertTrue( + file_path.startswith(tempdir), + f"Expected {file_path} to start with {tempdir}", + ) + + with open(file_path) as f: + self.assertEqual( + json.load(f), + { + "type": "ObjectType", + "value": { + "foo": "bar", + "baz": int( + bugs.WellKnownComponents.CrOSToolchainPublic + ), + }, + }, + ) + + @patch("bugs._WriteBugJSONFile") + def testAppendingToBugsSeemsToWork(self, mock_write_json_file): + """Tests AppendToExistingBug.""" + bugs.AppendToExistingBug(1234, "hello, world!") + mock_write_json_file.assert_called_once_with( + "AppendToExistingBugRequest", + { + "body": "hello, world!", + "bug_id": 1234, }, ) - @patch('bugs._WriteBugJSONFile') - def testAppendingToBugsSeemsToWork(self, mock_write_json_file): - """Tests AppendToExistingBug.""" - bugs.AppendToExistingBug(1234, 'hello, world!') - mock_write_json_file.assert_called_once_with( - 'AppendToExistingBugRequest', - { - 'body': 'hello, world!', - 'bug_id': 1234, - }, - ) - - @patch('bugs._WriteBugJSONFile') - def testBugCreationSeemsToWork(self, mock_write_json_file): - """Tests CreateNewBug.""" - test_case_additions = ( - {}, - { - 'component_id': bugs.WellKnownComponents.CrOSToolchainPublic, - }, - { - 'assignee': 'foo@gbiv.com', - 'cc': ['bar@baz.com'], - }, - ) - - for additions in test_case_additions: - test_case = { - 'component_id': 123, - 'title': 'foo', - 'body': 'bar', - **additions, - } - - bugs.CreateNewBug(**test_case) - - expected_output = { - 'component_id': test_case['component_id'], - 'subject': test_case['title'], - 'body': test_case['body'], - } - - assignee = test_case.get('assignee') - if assignee: - expected_output['assignee'] = assignee - - cc = test_case.get('cc') - if cc: - expected_output['cc'] = cc - - mock_write_json_file.assert_called_once_with( - 'FileNewBugRequest', - expected_output, - ) - mock_write_json_file.reset_mock() - - @patch('bugs._WriteBugJSONFile') - def testCronjobLogSendingSeemsToWork(self, mock_write_json_file): - """Tests SendCronjobLog.""" - bugs.SendCronjobLog('my_name', False, 'hello, world!') - mock_write_json_file.assert_called_once_with( - 'ChrotomationCronjobUpdate', - { - 'name': 'my_name', - 'message': 'hello, world!', - 'failed': False, - }, - ) - - -if __name__ == '__main__': - unittest.main() + @patch("bugs._WriteBugJSONFile") + def testBugCreationSeemsToWork(self, mock_write_json_file): + """Tests CreateNewBug.""" + test_case_additions = ( + {}, + { + "component_id": bugs.WellKnownComponents.CrOSToolchainPublic, + }, + { + "assignee": "foo@gbiv.com", + "cc": ["bar@baz.com"], + }, + ) + + for additions in test_case_additions: + test_case = { + "component_id": 123, + "title": "foo", + "body": "bar", + **additions, + } + + bugs.CreateNewBug(**test_case) + + expected_output = { + "component_id": test_case["component_id"], + "subject": test_case["title"], + "body": test_case["body"], + } + + assignee = test_case.get("assignee") + if assignee: + expected_output["assignee"] = assignee + + cc = test_case.get("cc") + if cc: + expected_output["cc"] = cc + + mock_write_json_file.assert_called_once_with( + "FileNewBugRequest", + expected_output, + ) + mock_write_json_file.reset_mock() + + @patch("bugs._WriteBugJSONFile") + def testCronjobLogSendingSeemsToWork(self, mock_write_json_file): + """Tests SendCronjobLog.""" + bugs.SendCronjobLog("my_name", False, "hello, world!") + mock_write_json_file.assert_called_once_with( + "ChrotomationCronjobUpdate", + { + "name": "my_name", + "message": "hello, world!", + "failed": False, + }, + ) + + +if __name__ == "__main__": + unittest.main() |