|  | #!/usr/bin/env python2.7 | 
|  | # 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() |