def testUnequalCloudDiskEmbeddedArgs(self, mock_copyDisk, _): """Test unequal number of args for cloud embedded disk evidence type.""" # Fail when zones don't match config.SHARED_FILESYSTEM = False config.TASK_MANAGER = 'PSQ' self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2', '--project', 'proj1,proj2,proj3', '--embedded_path', 'path1,path2,path3' ]) # Fail when embedded path don't match self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--embedded_path', 'path1,path2' ]) # Fail when name don't match self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--name', 'name1,name2', '--embedded_path', 'path1,path2,path3' ]) # Fail when mount source don't match self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--source', 'source1,source2', '--embedded_path', 'path1,path2,path3' ]) # Fail when project don't match self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2', '--source', 'source1,source2', '--embedded_path', 'path1,path2,path3' ]) # Pass when all the args match turbiniactl.process_evidence = mock.MagicMock(return_value=None) mock_copyDisk.return_value = compute.GoogleComputeDisk( 'fake-proj', 'fake-zone', 'fake-disk-copy') turbiniactl.process_args([ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--embedded_path', 'path1,path2,path3' ]) self.assertTrue(turbiniactl.process_evidence.called) # Raise error when running locally config.SHARED_FILESYSTEM = True with self.assertRaisesRegex(TurbiniaException, 'Cloud only'): turbiniactl.process_args([ 'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--embedded_path', 'path1,path2,path3' ])
def testUnequalRawdiskArgs(self, mockClient): """Test unequal number of args for rawdisk evidence type.""" self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'rawdisk', '--source_path', 'img1,img2', '--source', 'source,source2,source3' ]) self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'rawdisk', '--source_path', 'img1,img2', '--name', 'name1,name2,name3' ]) turbiniactl.process_evidence = mock.MagicMock(return_value=None) turbiniactl.process_args( ['rawdisk', '--source_path', 'img1,img2', '--name', 'name1,name2']) self.assertTrue(turbiniactl.process_evidence.called)
def testUnequalRawMemoryArgs(self, _): """Test unequal number of args for rawmemory evidence type.""" self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile', 'prof1,prof2,prof3,prof4', '--module_list', 'mock' ]) self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile', 'prof1,prof2,prof3', '--module_list', 'mock', '--name', 'name1,name2' ]) turbiniactl.process_evidence = mock.MagicMock(return_value=None) turbiniactl.process_args([ 'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile', 'prof1,prof2,prof3', '--module_list', 'mock' ]) self.assertTrue(turbiniactl.process_evidence.called)
def testUnequalCompresseddirectoryArgs(self, _): """Test unequal number of args for compresseddirectory evidence type.""" self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'compresseddirectory', '--source_path', 'img1,img2,img3', '--source', 'source1,source2' ]) self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'compresseddirectory', '--source_path', 'img1,img2', '--name', 'name1,name2,name3' ]) turbiniactl.process_evidence = mock.MagicMock(return_value=None) turbiniactl.process_args([ 'compresseddirectory', '--source_path', 'img1,img2', '--name', 'name1,name2' ]) self.assertTrue(turbiniactl.process_evidence.called)
def testUnequalHindsightArgs(self, _): """Test unequal number of args for hindsight evidence type.""" self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'hindsight', '--source_path', 'disk1,disk2,disk3', '--format', 'prof1,prof2,prof3', '--name', 'name1,name2' ]) self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'hindsight', '--source_path', 'disk1,disk2,disk3', '--format', 'sqlite,sqlite,sqlite,sqlite' ]) self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'hindsight', '--source_path', 'disk1,disk2,disk3', '--format', 'sqlite,sqlite,sqlite', '--browser_type', 'type1,type2' ]) turbiniactl.process_evidence = mock.MagicMock(return_value=None) turbiniactl.process_args( ['hindsight', '--source_path', 'disk1,disk2,disk3']) self.assertTrue(turbiniactl.process_evidence.called)
def testUnequalCloudDiskArgs(self, mockParser, mock_copyDisk, _): """Test unequal number of args for cloud disk evidence type.""" config.SHARED_FILESYSTEM = False config.TASK_MANAGER = 'PSQ' mockArgs = argparse.Namespace( all_fields=False, command='googleclouddisk', config_file=None, copy_only=False, debug=False, debug_tasks=False, decryption_keys=[], disk_name=['disk1', 'disk2', 'disk3'], dump_json=False, embedded_path=['path1', 'path2', 'path3'], filter_patterns_file=None, force_evidence=False, jobs_allowlist=[], jobs_denylist=[], log_file=None, mount_partition=None, name=None, output_dir=None, poll_interval=60, project=['proj1', 'proj2', 'proj3'], quiet=False, recipe=None, recipe_path=None, request_id=None, server=False, skip_recipe_validation=False, source=[None], verbose=True, wait=False, yara_rules_file=None, zone=['zone1', 'zone2'], group_name=None, reason=None, all_args=None) mockParser.return_value = mockArgs # Fail when zones dont match self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2', '--project', 'proj1,proj2,proj3' ]) # Fail when projects don't match mockArgs.zone = ['zone1', 'zone2', 'zone3'] mockArgs.project = ['proj1', 'proj2'] mockParser.return_value = mockArgs self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2' ]) #Fail when names dont match mockArgs.project = ['proj1', 'proj2', 'proj3'] mockArgs.name = ['name1', 'name2'] mockParser.return_value = mockArgs self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--name', 'name1,name2' ]) mockArgs.name = ['name1', 'name2', 'name3'] mockArgs.source = ['source1', 'source2'] self.assertRaises(TurbiniaException, turbiniactl.process_args, [ 'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--source', 'source1,source2' ]) mockArgs.source = ['source1', 'source2', 'source3'] turbiniactl.process_evidence = mock.MagicMock(return_value=None) mock_copyDisk.return_value = compute.GoogleComputeDisk( 'fake-proj', 'fake-zone', 'fake-disk-copy') turbiniactl.process_args([ 'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3' ]) self.assertTrue(turbiniactl.process_evidence.called)