mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-30 19:47:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| mod deserialize;
 | |
| 
 | |
| use crate::deserialize::Fixture;
 | |
| use ruff_annotate_snippets::{Message, Renderer};
 | |
| use snapbox::Data;
 | |
| use snapbox::data::DataFormat;
 | |
| use std::error::Error;
 | |
| 
 | |
| fn main() {
 | |
|     tryfn::Harness::new("tests/fixtures/", setup, test)
 | |
|         .select(["*/*.toml"])
 | |
|         .test();
 | |
| }
 | |
| 
 | |
| fn setup(input_path: std::path::PathBuf) -> tryfn::Case {
 | |
|     let parent = input_path
 | |
|         .parent()
 | |
|         .unwrap()
 | |
|         .file_name()
 | |
|         .unwrap()
 | |
|         .to_str()
 | |
|         .unwrap();
 | |
|     let file_name = input_path.file_name().unwrap().to_str().unwrap();
 | |
|     let name = format!("{parent}/{file_name}");
 | |
|     let expected = Data::read_from(&input_path.with_extension("svg"), None);
 | |
|     tryfn::Case {
 | |
|         name,
 | |
|         fixture: input_path,
 | |
|         expected,
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn test(input_path: &std::path::Path) -> Result<Data, Box<dyn Error>> {
 | |
|     let src = std::fs::read_to_string(input_path)?;
 | |
|     let fixture: Fixture = toml::from_str(&src)?;
 | |
|     let renderer: Renderer = fixture.renderer.into();
 | |
|     let message: Message<'_> = (&fixture.message).into();
 | |
| 
 | |
|     let actual = renderer.render(message).to_string();
 | |
|     Ok(Data::from(actual).coerce_to(DataFormat::TermSvg))
 | |
| }
 | 
