| #!/usr/bin/env python3.8 |
| # Copyright 2018 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import frontend |
| import os |
| import tempfile |
| import unittest |
| |
| |
| class TestFrontend(unittest.TestCase): |
| |
| def test_load_metadata_success(self): |
| tf = tempfile.NamedTemporaryFile() |
| tf.write( |
| '{"parts": [{"meta": "tools/x64/zbi-meta.json", ' |
| '"type": "host_tool"}, {"meta": "tools/x64/zxdb-meta.json", ' |
| '"type": "host_tool"}, {"meta": "tools/zbi-meta.json", ' |
| '"type": "host_tool"}], "arch": {"host": "x86_64-linux-gn", ' |
| '"target": ["arm64", "x64"]}, "id": "0.20200313.2.1", ' |
| '"schema_version": "1"}') |
| tf.flush() |
| metadata = frontend.load_metadata(tf.name) |
| self.assertEqual(3, len(metadata['parts'])) |
| self.assertEqual('x86_64-linux-gn', metadata['arch']['host']) |
| self.assertEqual('0.20200313.2.1', metadata['id']) |
| |
| def test_load_metadata_fail(self): |
| tf = tempfile.NamedTemporaryFile() |
| tf.write('invalid json') |
| self.assertFalse(frontend.load_metadata(tf.name)) |
| tf.close() # temp file is removed when closed |
| self.assertFalse(frontend.load_metadata(tf.name)) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |