Skip to content

Commit

Permalink
update test assertions to expect leaked objects
Browse files Browse the repository at this point in the history
  • Loading branch information
davidhewitt committed Oct 4, 2024
1 parent 675e505 commit f31271f
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 28 deletions.
48 changes: 32 additions & 16 deletions src/types/weakref/proxy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -778,7 +778,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -838,7 +839,8 @@ mod tests {
#[allow(deprecated)]
let obj = unsafe { reference.upgrade_borrowed_as_unchecked::<PyAny>() };

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -878,7 +880,8 @@ mod tests {

drop(object);

assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -913,7 +916,8 @@ mod tests {

drop(object);

assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down Expand Up @@ -1049,7 +1053,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1104,7 +1109,8 @@ mod tests {
reference.upgrade_borrowed_as_unchecked::<WeakrefablePyClass>()
};

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1142,7 +1148,8 @@ mod tests {

drop(object);

assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -1175,7 +1182,8 @@ mod tests {

drop(object);

assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down Expand Up @@ -1320,7 +1328,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1379,7 +1388,8 @@ mod tests {
// This test is a bit weird but ok.
let obj = unsafe { reference.upgrade_borrowed_as_unchecked::<PyAny>() };

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1419,7 +1429,8 @@ mod tests {

drop(object);

assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -1454,7 +1465,8 @@ mod tests {

drop(object);

assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down Expand Up @@ -1584,7 +1596,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1638,7 +1651,8 @@ mod tests {
reference.upgrade_borrowed_as_unchecked::<WeakrefablePyClass>()
};

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1676,7 +1690,8 @@ mod tests {

drop(object);

assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -1709,7 +1724,8 @@ mod tests {

drop(object);

assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down
32 changes: 20 additions & 12 deletions src/types/weakref/reference.rs
Original file line number Diff line number Diff line change
Expand Up @@ -744,7 +744,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -803,7 +804,8 @@ mod tests {
// This test is a bit weird but ok.
let obj = unsafe { reference.upgrade_borrowed_as_unchecked::<PyAny>() };

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -846,8 +848,9 @@ mod tests {

drop(object);

assert!(reference.call0()?.is_none());
assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.call0()?.is_none());
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -886,8 +889,9 @@ mod tests {

drop(object);

assert!(reference.call0()?.is_none());
assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.call0()?.is_none());
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down Expand Up @@ -998,7 +1002,8 @@ mod tests {
assert!(obj.is_ok());
let obj = obj.unwrap();

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1051,7 +1056,8 @@ mod tests {
let obj =
unsafe { reference.upgrade_borrowed_as_unchecked::<WeakrefablePyClass>() };

assert!(obj.is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(obj.is_some());
}

Ok(())
Expand Down Expand Up @@ -1092,8 +1098,9 @@ mod tests {

drop(object);

assert!(reference.call0()?.is_none());
assert!(reference.upgrade_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.call0()?.is_none());
assert!(reference.upgrade_borrowed().is_some());

Ok(())
})
Expand Down Expand Up @@ -1130,8 +1137,9 @@ mod tests {

drop(object);

assert!(reference.call0()?.is_none());
assert!(reference.get_object_borrowed().is_none());
// XXX: have to leak in the borrowed methods for safety :(
assert!(!reference.call0()?.is_none());
assert!(!reference.get_object_borrowed().is_none());

Ok(())
})
Expand Down

0 comments on commit f31271f

Please sign in to comment.