| #!/usr/bin/env python3 |
| # Copyright 2024 The Cobalt Authors. All Rights Reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| """Test for tool for updating Cobalt SSL Certificates.""" |
| |
| import io |
| import tempfile |
| import unittest |
| |
| from tools import update_certs |
| |
| _CERT_NAME = '8cb5ee0f.0' |
| _CERT = '''\ |
| -----BEGIN CERTIFICATE----- |
| MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 |
| MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g |
| Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG |
| A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg |
| Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl |
| ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j |
| QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr |
| ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr |
| BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM |
| YyRIHN8wfdVoOw== |
| -----END CERTIFICATE----- |
| ''' |
| |
| |
| class UpdateCertsTest(unittest.TestCase): |
| |
| def testSplitCerts(self): |
| pem = io.StringIO(_CERT + _CERT) |
| output = update_certs.SplitCerts(pem) |
| self.assertEqual(len(output), 2) |
| self.assertEqual(output[0], _CERT) |
| self.assertEqual(output[1], _CERT) |
| |
| def testUpdateBuild(self): |
| filepaths = {'foo', 'bar'} |
| build_content = '''\ |
| network_certs = [ |
| "//bar", |
| "//foo", |
| ] |
| ''' |
| with tempfile.NamedTemporaryFile(delete=False) as tmp: |
| update_certs.UpdateBuild(tmp.name, filepaths) |
| with open(tmp.name, encoding='utf-8') as f: |
| self.assertEqual(f.read(), build_content) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |