mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Removed the depreciated Context and LazyContext classes
This commit is contained in:
parent
f7375bb609
commit
0cfb0e191a
@ -871,7 +871,7 @@ freeIPA.org:
|
||||
'''
|
||||
|
||||
import plugable
|
||||
from backend import Backend, Context
|
||||
from backend import Backend
|
||||
from frontend import Command, LocalOrRemote, Application
|
||||
from frontend import Object, Method, Property
|
||||
from crud import Create, Retrieve, Update, Delete, Search
|
||||
@ -902,12 +902,9 @@ def create_api(mode='dummy'):
|
||||
- `frontend.Application`
|
||||
|
||||
- `backend.Backend`
|
||||
|
||||
- `backend.Context`
|
||||
"""
|
||||
api = plugable.API(
|
||||
Command, Object, Method, Property, Application,
|
||||
Backend, Context,
|
||||
Command, Object, Method, Property, Application, Backend
|
||||
)
|
||||
if mode is not None:
|
||||
api.env.mode = mode
|
||||
|
@ -95,17 +95,3 @@ class Executioner(Backend):
|
||||
return result
|
||||
assert isinstance(error, PublicError)
|
||||
raise error
|
||||
|
||||
|
||||
|
||||
class Context(plugable.Plugin):
|
||||
"""
|
||||
Base class for plugable context components.
|
||||
"""
|
||||
|
||||
__proxy__ = False # Backend plugins are not wrapped in a PluginProxy
|
||||
|
||||
def get_value(self):
|
||||
raise NotImplementedError(
|
||||
'%s.get_value()' % self.__class__.__name__
|
||||
)
|
||||
|
@ -506,28 +506,6 @@ class Registrar(DictProxy):
|
||||
self.__registered.add(klass)
|
||||
|
||||
|
||||
class LazyContext(object):
|
||||
"""
|
||||
On-demand creation of thread-local context attributes.
|
||||
"""
|
||||
|
||||
def __init__(self, api):
|
||||
self.__api = api
|
||||
self.__context = threading.local()
|
||||
|
||||
def __getattr__(self, name):
|
||||
if name not in self.__context.__dict__:
|
||||
if name not in self.__api.Context:
|
||||
raise AttributeError('no Context plugin for %r' % name)
|
||||
value = self.__api.Context[name].get_value()
|
||||
self.__context.__dict__[name] = value
|
||||
return self.__context.__dict__[name]
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self.__getattr__(key)
|
||||
|
||||
|
||||
|
||||
class API(DictProxy):
|
||||
"""
|
||||
Dynamic API object through which `Plugin` instances are accessed.
|
||||
@ -538,7 +516,6 @@ class API(DictProxy):
|
||||
self.__done = set()
|
||||
self.register = Registrar(*allowed)
|
||||
self.env = Env()
|
||||
self.context = LazyContext(self)
|
||||
super(API, self).__init__(self.__d)
|
||||
|
||||
def __doing(self, name):
|
||||
|
@ -25,24 +25,13 @@ This wraps the python-ldap bindings.
|
||||
"""
|
||||
|
||||
import ldap as _ldap
|
||||
from ipalib import api, Context
|
||||
from ipalib import api
|
||||
from ipalib import errors
|
||||
from ipalib.crud import CrudBackend
|
||||
from ipaserver import servercore
|
||||
from ipaserver import ipaldap
|
||||
|
||||
|
||||
class conn(Context):
|
||||
"""
|
||||
Thread-local LDAP connection.
|
||||
"""
|
||||
|
||||
def get_value(self):
|
||||
return 'it worked'
|
||||
|
||||
api.register(conn)
|
||||
|
||||
|
||||
class ldap(CrudBackend):
|
||||
"""
|
||||
LDAP backend plugin.
|
||||
|
@ -210,21 +210,3 @@ class test_Executioner(ClassChecker):
|
||||
e = raises(errors2.InternalError, o.execute, 'bad')
|
||||
assert conn.closed is True # Make sure destroy_context() was called
|
||||
assert context.__dict__.keys() == []
|
||||
|
||||
|
||||
class test_Context(ClassChecker):
|
||||
"""
|
||||
Test the `ipalib.backend.Context` class.
|
||||
"""
|
||||
|
||||
_cls = backend.Context
|
||||
|
||||
def test_get_value(self):
|
||||
"""
|
||||
Test the `ipalib.backend.Context.get_value` method.
|
||||
"""
|
||||
class Subclass(self.cls):
|
||||
pass
|
||||
o = Subclass()
|
||||
e = raises(NotImplementedError, o.get_value)
|
||||
assert str(e) == 'Subclass.get_value()'
|
||||
|
Loading…
Reference in New Issue
Block a user