#!/usr/bin/python # Copyright 2014 Google Inc. # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """ Test gyp_to_android.py """ import os import shutil import sys import tempfile import test_variables import unittest sys.path.append(test_variables.ANDROID_DIR) import gyp_gen.android_framework_gyp GYPD_SUFFIX = ".gypd" GYP_SUFFIX = ".gyp" GYPI_SUFFIX = ".gypi" OTHER_SUFFIX = ".txt" class CleanGypdTest(unittest.TestCase): def setUp(self): self.__tmp_dir = tempfile.mkdtemp() self.__num_files = 10 # Fill the dir with four types of files. .gypd files should be deleted by # clean_gypd_files(), while the rest should be left alone. for i in range(self.__num_files): self.create_file('%s%s' % (str(i), GYPD_SUFFIX)) self.create_file('%s%s' % (str(i), GYPI_SUFFIX)) self.create_file('%s%s' % (str(i), GYP_SUFFIX)) self.create_file('%s%s' % (str(i), OTHER_SUFFIX)) def create_file(self, basename): """Create a file named 'basename' in self.__tmp_dir. """ f = tempfile.mkstemp(dir=self.__tmp_dir) os.rename(f[1], os.path.join(self.__tmp_dir, basename)) self.assert_file_exists(basename) def assert_file_exists(self, basename): """Assert that 'basename' exists in self.__tmp_dir. """ full_name = os.path.join(self.__tmp_dir, basename) self.assertTrue(os.path.exists(full_name)) def assert_file_does_not_exist(self, basename): """Assert that 'basename' does not exist in self.__tmp_dir. """ full_name = os.path.join(self.__tmp_dir, basename) self.assertFalse(os.path.exists(full_name)) def test_clean(self): """Test that clean_gypd_files() deletes .gypd files, and leaves others. """ gyp_gen.android_framework_gyp.clean_gypd_files(self.__tmp_dir) for i in range(self.__num_files): self.assert_file_exists('%s%s' % (str(i), GYPI_SUFFIX)) self.assert_file_exists('%s%s' % (str(i), GYP_SUFFIX)) self.assert_file_exists('%s%s' % (str(i), OTHER_SUFFIX)) # Only the GYPD files should have been deleted. self.assert_file_does_not_exist('%s%s' % (str(i), GYPD_SUFFIX)) def tearDown(self): shutil.rmtree(self.__tmp_dir) def main(): loader = unittest.TestLoader() suite = loader.loadTestsFromTestCase(CleanGypdTest) unittest.TextTestRunner(verbosity=2).run(suite) if __name__ == "__main__": main()