pub struct PythonTestRunner { /* private fields */ }Expand description
Python test runner using uv and pytest
Handles:
- Checking for pyproject.toml
- Setting up Python environment via uv
- Running pytest
- Parsing results for V_log calculation
Implementations§
Source§impl PythonTestRunner
impl PythonTestRunner
Sourcepub fn with_timeout(self, secs: u64) -> Self
pub fn with_timeout(self, secs: u64) -> Self
Set timeout
Sourcepub fn without_auto_setup(self) -> Self
pub fn without_auto_setup(self) -> Self
Disable auto-setup (don’t create pyproject.toml if missing)
Sourcepub fn has_pyproject(&self) -> bool
pub fn has_pyproject(&self) -> bool
Check if workspace has a Python project setup
Sourcepub async fn has_pytest(&self) -> bool
pub async fn has_pytest(&self) -> bool
Check if workspace has pytest configured
Sourcepub async fn setup_environment(&self) -> Result<()>
pub async fn setup_environment(&self) -> Result<()>
Initialize the Python environment with uv NOTE: This assumes pyproject.toml already exists (created by orchestrator’s step_init_project)
Sourcepub async fn run_pytest(&self, test_args: &[&str]) -> Result<TestResults>
pub async fn run_pytest(&self, test_args: &[&str]) -> Result<TestResults>
Run pytest and parse results
If environment is not set up, will attempt to set it up first.
Sourcepub async fn run_test_files(&self, test_files: &[&Path]) -> Result<TestResults>
pub async fn run_test_files(&self, test_files: &[&Path]) -> Result<TestResults>
Run pytest on specific test files
Sourcepub fn calculate_v_log(
&self,
results: &TestResults,
contract: &BehavioralContract,
) -> f32
pub fn calculate_v_log( &self, results: &TestResults, contract: &BehavioralContract, ) -> f32
Calculate V_log (Logic Energy) from test results and behavioral contract Uses weighted tests from the contract to determine criticality
Sourcepub fn match_weighted_tests(
&self,
results: &mut TestResults,
contract: &BehavioralContract,
)
pub fn match_weighted_tests( &self, results: &mut TestResults, contract: &BehavioralContract, )
Match test failures with weighted tests from contract to set criticality
Trait Implementations§
Source§impl TestRunnerTrait for PythonTestRunner
impl TestRunnerTrait for PythonTestRunner
Source§fn run_syntax_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run_syntax_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Run syntax/type check (e.g.,
cargo check, uv run ty check .)Source§fn run_tests<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run_tests<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Run the test suite (e.g.,
cargo test, uv run pytest)Source§fn run_build_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run_build_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TestResults>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Run build check (e.g.,
cargo build)Auto Trait Implementations§
impl Freeze for PythonTestRunner
impl RefUnwindSafe for PythonTestRunner
impl Send for PythonTestRunner
impl Sync for PythonTestRunner
impl Unpin for PythonTestRunner
impl UnsafeUnpin for PythonTestRunner
impl UnwindSafe for PythonTestRunner
Blanket Implementations§
impl<T> Allocation for T
impl<T> AsTypeStaticRegistered for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> HasTyVTable for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.