def test_constructor_with_valid_parameters(self): base_path = TestUtils.get_resources_path() name = 'genuine' folder_access = FolderAccess(base_path, name) _ = folder_access.load() self.assertTrue(isinstance(folder_access, FolderAccess))
def test_constructor_with_valid_parameters_but_pointing_no_images_folder( self): base_path = TestUtils.get_resources_path() + '/..' name = 'bob' folder_access = FolderAccess(base_path, name) self.assertRaises(IOError, lambda: folder_access.load())
def test_constructor_with_valid_parameters_and_setter_access_modifier( self, dummy_dict_images=dummy_dict_images): base_path = TestUtils.get_resources_path() name = 'genuine' folder_access = FolderAccess(base_path, name) folder_access.set_access_modifier(AccessModifier()) dict_images = folder_access.load() AccessModifier.run.assert_called_once() self.assertEqual(dict_images, dummy_dict_images)
def get_all_accesses(self, access_modifier=AccessModifier()): if not self.dict_all_accesses: self.dict_all_accesses = {'Train': [], 'Dev': [], 'Test': []} for root, dirs, files in os.walk(self.base_path): if not dirs: if sum([f.endswith('.jpg') for f in files]): split_path = os.path.normpath(root).split(os.path.sep) relative_path = os.path.relpath(root, self.base_path) user = split_path[-2] for subset, list_users in CSMAD_USERS_PER_SUBSET.items( ): if user in list_users: self.dict_all_accesses[subset].append( FolderAccess( self.base_path, relative_path, '.jpg', access_modifier=access_modifier, annotation_base_path=self. annotation_base_path, database_name=CsmadDatabase.name())) for subset, list_accesses in self.dict_all_accesses.items(): list_accesses.sort(key=lambda x: x.name) return self.dict_all_accesses
def test_constructor_with_wrong_access_modifier(self): base_path = TestUtils.get_resources_path() name = 'genuine' access_modifier = None self.assertRaises( TypeError, lambda: FolderAccess( base_path, name, access_modifier=access_modifier))
def get_all_accesses(self, access_modifier=AccessModifier()): if not self.dict_all_accesses: self.dict_all_accesses = {'Train': [], 'Dev': [], 'Test': []} for root, dirs, files in os.walk(self.base_path): if not dirs: if sum([f.endswith('.jpg') for f in files]): relative_path = os.path.relpath(root, self.base_path) split_path = os.path.normpath(relative_path).split( os.path.sep) # Until March 10th, only Train set is available if split_path[0] == 'Training' and split_path[ -1] == 'color': depth_relative_path = relative_path.replace( 'color', 'depth') ir_relative_path = relative_path.replace( 'color', 'ir') user = split_path[-3] if user in CASIA_DEV_USERS: subset = 'Dev' elif user in CASIA_TEST_USERS: subset = 'Test' else: subset = 'Train' self.dict_all_accesses[subset].append( FolderAccess( self.base_path, relative_path, '.jpg', depth_name=depth_relative_path, infrared_name=ir_relative_path, access_modifier=access_modifier, annotation_base_path=self. annotation_base_path, database_name=CasiaSurfDatabase.name())) # subset = 'Test' # orig_dev_list = [line.rstrip() for line in open(os.path.join(self.base_path, # 'val_public_list.txt'))] # for line in orig_dev_list: # color_relative_path, depth_relative_path, ir_relative_path = line.split(' ') # self.dict_all_accesses[subset].append( # FolderAccess(self.base_path, color_relative_path, '.jpg', # depth_name=depth_relative_path, # infrared_name=ir_relative_path, # access_modifier=access_modifier, # annotation_base_path=self.annotation_base_path, # database_name=CasiaSurfDatabase.name() # )) for subset, list_accesses in self.dict_all_accesses.items(): list_accesses.sort(key=lambda x: x.name) return self.dict_all_accesses
def test_constructor_with_wrong_base_path_and_name(self): base_path = TestUtils.get_resources_path() name = '' self.assertRaises(IOError, lambda: FolderAccess(base_path, name))
def test_constructor_with_wrong_base_path(self): base_path = '' name = 'access01' self.assertRaises(IOError, lambda: FolderAccess(base_path, name))