docs/fix/repl/drink.py
"""--replmode fixture acquires resource, passes to tests via globs, releases it."""
from phmutest.fixture import Fixture
class Drink:
"""Represents an acquired and released resource."""
def __init__(self, name):
self.name = name
print(f"Acquiring Drink {self.name}. ...")
def release(self):
print(f"Releasing Drink {self.name}. ...")
def add(self, ingredient):
self.name = self.name + " + " + ingredient
def __repr__(self):
return self.name
EXTRA = "sugar"
def init(**kwargs):
"""Initialize Drink, pass to tests as dict globs. Pass its cleanup function."""
drink = Drink("tea")
globs = dict(drink=drink, EXTRA=EXTRA)
return Fixture(globs=globs, repl_cleanup=drink.release)