| # Copyright 2018 The Tulsi 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 install_genfiles.py.""" |
| |
| import os |
| import unittest |
| |
| import install_genfiles |
| |
| DOES_EXIST_DATA = { |
| 'generated_sources': [ |
| ('third_party/tulsi/src/TulsiGenerator/Scripts/install_genfiles.py', |
| 'install_genfiles.py'), |
| ], |
| } |
| |
| |
| DOES_NOT_EXIST_DATA = { |
| 'generated_sources': [('src/does/not/exist.txt', |
| 'exist.txt')], |
| } |
| |
| |
| class TestInstallForData(unittest.TestCase): |
| |
| def testSrcDoeNotExist(self): |
| tmpdir = os.environ['TEST_TMPDIR'] |
| installer = install_genfiles.Installer('.', output_root=tmpdir) |
| installer.InstallForData(DOES_NOT_EXIST_DATA) |
| self.assertFalse(os.path.lexists( |
| os.path.join(tmpdir, '_tulsi-includes/x/x/exist.txt'))) |
| |
| def testSrcDoesExist(self): |
| tmpdir = os.environ['TEST_TMPDIR'] |
| installer = install_genfiles.Installer('.', output_root=tmpdir) |
| installer.InstallForData(DOES_EXIST_DATA) |
| # Must use lexists because we create a link but use the wrong exec root, |
| # so the symlink is not valid. |
| self.assertTrue(os.path.lexists( |
| os.path.join(tmpdir, '_tulsi-includes/x/x/install_genfiles.py'))) |
| |
| if __name__ == '__main__': |
| unittest.main() |