def test_frame_close(): f1 = Frame() t1 = f1.term() t1.put_atom_name('t1') assert_equal(str(t1), 't1') f1.close() with assert_raises(AttributeError): str(t1) with assert_raises(AttributeError): f1.close() with Frame() as f2: t2 = f2.term() t2.put_atom_name('t2') assert_equal(str(t2), 't2') with assert_raises(AttributeError): str(t2) with assert_raises(AttributeError): f2.close() X = Term() with Frame(): X.put_integer(1) assert_equal(str(X), '1') assert_equal(str(X), '1') eq = Predicate.from_name_arity('=', 2) X = Term() with Frame(): eq(X, Term.from_integer(1)) assert_equal(str(X), '1') assert_equal(str(X), '1')
def test_frame_discard(): eq = Predicate.from_name_arity('=', 2) X = Term() with Frame(discard=True): X.put_integer(1) assert_equal(str(X), '1') assert_equal(str(X), '1') X = Term() with Frame(discard=True): eq(X, Term.from_integer(1)) assert_equal(str(X), '1') assert_equal(X.type(), 'integer') assert_not_equal(str(X), '1') assert_equal(X.type(), 'variable')