Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions checks/oop_advanced/oop_advanced1.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# checks/oop_advanced/oop_advanced1.py
dog = Dog()
assert isinstance(dog, Animal)
assert dog.speak() == "sound"
assert isinstance(dog, Animal), "Dog() should be an instance of Animal"
assert dog.speak() == "sound", "Dog().speak() should return 'sound'"
print("oop_advanced1 ok")
7 changes: 5 additions & 2 deletions checks/oop_advanced/oop_advanced2.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# checks/oop_advanced/oop_advanced2.py
employee = Employee("Ada", "Engineer")
assert employee.name == "Ada"
assert employee.role == "Engineer"
assert employee.name == "Ada", f"expected name 'Ada', got {employee.name!r}"
assert employee.role == "Engineer", (
f"expected role 'Engineer', got {employee.role!r}"
)
print("oop_advanced2 ok")
3 changes: 2 additions & 1 deletion checks/oop_advanced/oop_advanced3.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# checks/oop_advanced/oop_advanced3.py
shapes = [Square(3), Rectangle(2, 5)]
assert total_area(shapes) == 19
assert total_area(shapes) == 19, "total_area(shapes) should be 19"
print("oop_advanced3 ok")
3 changes: 2 additions & 1 deletion checks/oop_advanced/oop_advanced4.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# checks/oop_advanced/oop_advanced4.py
user = User("Lin")
assert user.name == "Lin"
assert user.name == "Lin", f"expected name 'Lin', got {user.name!r}"
print("oop_advanced4 ok")
3 changes: 2 additions & 1 deletion checks/oop_advanced/oop_advanced5.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# checks/oop_advanced/oop_advanced5.py
playlist = Playlist(["one", "two", "three"])
assert len(playlist) == 3
assert len(playlist) == 3, "len(playlist) should be 3"
print("oop_advanced5 ok")
5 changes: 4 additions & 1 deletion checks/oop_advanced/oop_advanced6.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
assert repr(Point(2, 5)) == "Point(x=2, y=5)"
# checks/oop_advanced/oop_advanced6.py
assert repr(Point(2, 5)) == "Point(x=2, y=5)", (
"repr(Point(2, 5)) should be 'Point(x=2, y=5)'"
)
print("oop_advanced6 ok")
21 changes: 21 additions & 0 deletions tests/unit/test_check_namespaces.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# tests/unit/test_check_namespaces.py
from pathlib import Path

from solutions._answers import ANSWERS


def test_area_check_preserves_learner_globals() -> None:
namespace = {"__name__": "__main__"}
exec(ANSWERS["oop_advanced3"], namespace)
namespace["area"] = 0
check = (
Path(__file__).resolve().parents[2]
/ "checks" / "oop_advanced" / "oop_advanced3.py"
)

exec(
compile(check.read_text(encoding="utf-8"), str(check), "exec"),
namespace,
)

assert namespace["area"] == 0
Loading