| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -18,12 +18,15 @@ class TestLogHandler(logging.Handler): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def reset(self): | 
					 | 
					 | 
					 | 
					  def reset(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.upload_order = list() | 
					 | 
					 | 
					 | 
					    self.upload_order = list() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.upload_ignored = list() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def emit(self, record): | 
					 | 
					 | 
					 | 
					  def emit(self, record): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    try: | 
					 | 
					 | 
					 | 
					    try: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      j = json.loads(record.message) | 
					 | 
					 | 
					 | 
					      j = json.loads(record.message) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if j["event"] == "upload_success": | 
					 | 
					 | 
					 | 
					      if j["event"] == "upload_success": | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.upload_order.append(j["key"]) | 
					 | 
					 | 
					 | 
					        self.upload_order.append(j["key"]) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      if j["event"] == "upload_ignored": | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        self.upload_ignored.append(j["key"]) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    except Exception: | 
					 | 
					 | 
					 | 
					    except Exception: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      pass | 
					 | 
					 | 
					 | 
					      pass | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -73,6 +76,7 @@ class TestUploader(UploaderTestCase): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    time.sleep(5) | 
					 | 
					 | 
					 | 
					    time.sleep(5) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.join_thread() | 
					 | 
					 | 
					 | 
					    self.join_thread() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertTrue(len(log_handler.upload_ignored) == 0, "Some files were ignored") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) < len(f_paths), "Some files failed to upload") | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) < len(f_paths), "Some files failed to upload") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) > len(f_paths), "Some files were uploaded twice") | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) > len(f_paths), "Some files were uploaded twice") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    for f_path in f_paths: | 
					 | 
					 | 
					 | 
					    for f_path in f_paths: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -80,6 +84,23 @@ class TestUploader(UploaderTestCase): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    exp_order = self.gen_order([self.seg_num], []) | 
					 | 
					 | 
					 | 
					    exp_order = self.gen_order([self.seg_num], []) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.assertTrue(log_handler.upload_order == exp_order, "Files uploaded in wrong order") | 
					 | 
					 | 
					 | 
					    self.assertTrue(log_handler.upload_order == exp_order, "Files uploaded in wrong order") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  def test_upload_ignored(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.set_ignore() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    f_paths = self.gen_files(lock=False) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.start_thread() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    # allow enough time that files could upload twice if there is a bug in the logic | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    time.sleep(5) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.join_thread() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertTrue(len(log_handler.upload_order) == 0, "Some files were not ignored") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_ignored) < len(f_paths), "Some files failed to ignore") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_ignored) > len(f_paths), "Some files were ignored twice") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    for f_path in f_paths: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      self.assertTrue(getxattr(f_path, uploader.UPLOAD_ATTR_NAME), "All files not ignored") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    exp_order = self.gen_order([self.seg_num], []) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertTrue(log_handler.upload_ignored == exp_order, "Files ignored in wrong order") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_files_in_create_order(self): | 
					 | 
					 | 
					 | 
					  def test_upload_files_in_create_order(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    f_paths = list() | 
					 | 
					 | 
					 | 
					    f_paths = list() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    seg1_nums = [0,1,2,10,20] | 
					 | 
					 | 
					 | 
					    seg1_nums = [0,1,2,10,20] | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -96,6 +117,7 @@ class TestUploader(UploaderTestCase): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    time.sleep(5) | 
					 | 
					 | 
					 | 
					    time.sleep(5) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.join_thread() | 
					 | 
					 | 
					 | 
					    self.join_thread() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    self.assertTrue(len(log_handler.upload_ignored) == 0, "Some files were ignored") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) < len(f_paths), "Some files failed to upload") | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) < len(f_paths), "Some files failed to upload") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) > len(f_paths), "Some files were uploaded twice") | 
					 | 
					 | 
					 | 
					    self.assertFalse(len(log_handler.upload_order) > len(f_paths), "Some files were uploaded twice") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    for f_path in f_paths: | 
					 | 
					 | 
					 | 
					    for f_path in f_paths: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |