def test_dict_usage(): """ Opaque should be dict-like. """ opaque = Opaque() assert_that(opaque.as_dict(), is_(equal_to(dict()))) opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(opaque[THIS], is_(equal_to(VALUE)))
def test_dict_usage(): """ Opaque should be dict-like. """ opaque = Opaque() assert_that(opaque.as_dict(), is_(equal_to(dict()))) opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(opaque[THIS], is_(equal_to(VALUE)))
def test_composition(): """ Opaque.initialize should compose (within reason). """ opaque = Opaque() opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) with opaque.initialize(example_func, ALSO, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(ALSO, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))
def test_composition(): """ Opaque.initialize should compose (within reason). """ opaque = Opaque() opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) with opaque.initialize(example_func, ALSO, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(ALSO, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))
def test_decorator(): """ Opaque.initialize should act as a decorator and resets state properly. """ opaque = Opaque() opaque[THIS] = VALUE @opaque.initialize(example_func, OTHER, OTHER) def function_to_decorate(): return opaque.as_dict() assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(function_to_decorate(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(function_to_decorate(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))
def test_decorator(): """ Opaque.initialize should act as a decorator and resets state properly. """ opaque = Opaque() opaque[THIS] = VALUE @opaque.initialize(example_func, OTHER, OTHER) def function_to_decorate(): return opaque.as_dict() assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(function_to_decorate(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) assert_that(function_to_decorate(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))
def test_context_manager(): """ Opaque.initialize should act as a context manager and resets state properly. """ opaque = Opaque() opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: OTHER, THAT: OTHER}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: OTHER, THAT: OTHER}))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))
def test_context_manager(): """ Opaque.initialize should act as a context manager and resets state properly. """ opaque = Opaque() opaque[THIS] = VALUE assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: OTHER, THAT: OTHER}))) with opaque.initialize(example_func, OTHER, OTHER): assert_that(opaque.as_dict(), is_(equal_to(example_func(OTHER, OTHER)))) assert_that(opaque.as_dict(), is_(equal_to({THIS: OTHER, THAT: OTHER}))) assert_that(opaque.as_dict(), is_(equal_to({THIS: VALUE})))