Added unit tests for the file locking function
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				ci/woodpecker/push/woodpecker Pipeline was successful
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	ci/woodpecker/push/woodpecker Pipeline was successful
				
			This commit is contained in:
		@@ -8,9 +8,54 @@ pub fn is_file_locked(filepath: &str) -> bool {
 | 
			
		||||
    .expect("Failed to execute command");
 | 
			
		||||
 | 
			
		||||
  let results = &String::from_utf8_lossy(&cmd.stdout);
 | 
			
		||||
  println!("{}", results);
 | 
			
		||||
  if results.contains(filepath) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod tests {
 | 
			
		||||
  use std::fs;
 | 
			
		||||
  use std::mem::drop;
 | 
			
		||||
  use std::path::Path;
 | 
			
		||||
 | 
			
		||||
  use super::*;
 | 
			
		||||
 | 
			
		||||
  #[test]
 | 
			
		||||
  fn file_should_not_be_locked() {
 | 
			
		||||
    setup("test-not-locked.txt");
 | 
			
		||||
    assert!(!is_file_locked("test-not-locked.txt"));
 | 
			
		||||
    teardown("test-not-locked.txt");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  #[test]
 | 
			
		||||
  fn file_should_be_locked() {
 | 
			
		||||
    setup("test-locked.txt");
 | 
			
		||||
    let path = Path::new("test-locked.txt");
 | 
			
		||||
    match fs::File::open(&path) {
 | 
			
		||||
      Err(e) => panic!("couldn't open {}: {}", "test-locked.txt", e),
 | 
			
		||||
      Ok(_) => assert!(is_file_locked("test-locked.txt")),
 | 
			
		||||
    };
 | 
			
		||||
    teardown("test-locked.txt");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // get things ready for our tests
 | 
			
		||||
  fn setup(test_file: &str) {
 | 
			
		||||
    let f = match fs::File::create(test_file) {
 | 
			
		||||
      Ok(file) => file,
 | 
			
		||||
      Err(e) => panic!("{:?}", e),
 | 
			
		||||
    };
 | 
			
		||||
    drop(f);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // clean up after running tests
 | 
			
		||||
  fn teardown(test_file: &str) {
 | 
			
		||||
    match fs::remove_file(test_file) {
 | 
			
		||||
      Ok(_) => {},
 | 
			
		||||
      Err(e) => panic!("{:?}", e),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user