1#!/usr/bin/env python3 2 3import os 4import unittest 5 6from vndk_definition_tool import scandir 7 8 9class ScanDirTest(unittest.TestCase): 10 def test_scandir(self): 11 testdata_dir = os.path.join( 12 os.path.dirname(__file__), 'testdata', 'test_scandir') 13 14 num_entries = 0 15 for ent in scandir(testdata_dir): 16 num_entries += 1 17 18 self.assertEqual(ent.path, os.path.join(testdata_dir, ent.name)) 19 20 if ent.name == 'test_file': 21 self.assertTrue(ent.is_file()) 22 self.assertFalse(ent.is_dir()) 23 self.assertFalse(ent.is_symlink()) 24 elif ent.name == 'test_dir': 25 self.assertFalse(ent.is_file()) 26 self.assertTrue(ent.is_dir()) 27 self.assertFalse(ent.is_symlink()) 28 elif ent.name == 'link_test_file': 29 self.assertTrue(ent.is_file()) 30 self.assertFalse(ent.is_file(follow_symlinks=False)) 31 self.assertFalse(ent.is_dir()) 32 self.assertFalse(ent.is_dir(follow_symlinks=False)) 33 self.assertTrue(ent.is_symlink()) 34 elif ent.name == 'link_test_dir': 35 self.assertFalse(ent.is_file()) 36 self.assertFalse(ent.is_file(follow_symlinks=False)) 37 self.assertTrue(ent.is_dir()) 38 self.assertFalse(ent.is_dir(follow_symlinks=False)) 39 self.assertTrue(ent.is_symlink()) 40 elif ent.name == 'link_does_not_exist': 41 self.assertFalse(ent.is_file()) 42 self.assertFalse(ent.is_file(follow_symlinks=False)) 43 self.assertFalse(ent.is_dir()) 44 self.assertFalse(ent.is_dir(follow_symlinks=False)) 45 self.assertTrue(ent.is_symlink()) 46 else: 47 self.fail('unexpected filename: ' + ent.name) 48 49 self.assertEqual(num_entries, 5) 50