def test_declared_function_is_accessible(self): scope = Scope() scope.declare_func(AccessLevel.internal, "foo", {"x": Int}, Int) self.assertDictEqual( scope.accessible_functions(), { "foo": FunctionType(AccessLevel.internal, {"x": Int}, Int), } )
def test_accessible_functions_access_level_filter(self): scope = Scope() scope.declare_func(AccessLevel.public, "foo", {}, Int) scope.declare_func(AccessLevel.internal, "bar", {}, Int) scope.declare_func(AccessLevel.private, "baz", {}, Int) self.assertSetEqual( set(scope.accessible_functions(at_least=AccessLevel.public).keys()), {"foo"} ) self.assertSetEqual( set(scope.accessible_functions(at_least=AccessLevel.internal).keys()), {"foo", "bar"} ) self.assertSetEqual( set(scope.accessible_functions(at_least=AccessLevel.private).keys()), {"foo", "bar", "baz"} )