Michael Merickel
2017-05-01 e78aa24cda85368c3507c145e1e604e7335778dc
commit | author | age
262cea 1 class DummyTweens(object):
CM 2     def __init__(self, implicit, explicit):
3         self._implicit = implicit
4         self.explicit = explicit
5         self.name_to_alias = {}
6     def implicit(self):
7         return self._implicit
f1013b 8
262cea 9 class Dummy:
CM 10     pass
11
12 dummy_root = Dummy()
13
14 class DummyRegistry(object):
15     settings = {}
16     def queryUtility(self, iface, default=None, name=''):
17         return default
18
19 dummy_registry = DummyRegistry()
20
21 class DummyShell(object):
22     env = {}
23     help = ''
208e7b 24     called = False
262cea 25
CM 26     def __call__(self, env, help):
27         self.env = env
28         self.help = help
208e7b 29         self.called = True
262cea 30
CM 31 class DummyInteractor:
32     def __call__(self, banner, local):
33         self.banner = banner
34         self.local = local
f1013b 35
262cea 36 class DummyApp:
CM 37     def __init__(self):
38         self.registry = dummy_registry
39
40 class DummyMapper(object):
41     def __init__(self, *routes):
42         self.routes = routes
43
582c2e 44     def get_routes(self, include_static=False):
262cea 45         return self.routes
CM 46
47 class DummyRoute(object):
48     def __init__(self, name, pattern, factory=None,
49                  matchdict=None, predicate=None):
50         self.name = name
51         self.path = pattern
52         self.pattern = pattern
53         self.factory = factory
54         self.matchdict = matchdict
55         self.predicates = []
56         if predicate is not None:
57             self.predicates = [predicate]
58
59     def match(self, route):
60         return self.matchdict
f1013b 61
262cea 62 class DummyRequest:
CM 63     application_url = 'http://example.com:5432'
64     script_name = ''
65     def __init__(self, environ):
66         self.environ = environ
67         self.matchdict = {}
68
69 class DummyView(object):
70     def __init__(self, **attrs):
71         self.__request_attrs__ = attrs
72
d9dc88 73     def view(context, request): pass
1bdb55 74
262cea 75 from zope.interface import implementer
CM 76 from pyramid.interfaces import IMultiView
77 @implementer(IMultiView)
78 class DummyMultiView(object):
79
80     def __init__(self, *views, **attrs):
81         self.views = [(None, view, None) for view in views]
82         self.__request_attrs__ = attrs
83
84 class DummyCloser(object):
85     def __call__(self):
86         self.called = True
87
88 class DummyBootstrap(object):
89     def __init__(self, app=None, registry=None, request=None, root=None,
90                  root_factory=None, closer=None):
91         self.app = app or DummyApp()
92         if registry is None:
93             registry = DummyRegistry()
94         self.registry = registry
95         if request is None:
96             request = DummyRequest({})
97         self.request = request
98         if root is None:
99             root = Dummy()
100         self.root = root
101         if root_factory is None:
102             root_factory = Dummy()
103         self.root_factory = root_factory
104         if closer is None:
105             closer = DummyCloser()
106         self.closer = closer
107
108     def __call__(self, *a, **kw):
109         self.a = a
110         self.kw = kw
cefcf8 111         registry = kw.get('registry', self.registry)
MM 112         request = kw.get('request', self.request)
113         request.registry = registry
262cea 114         return {
CM 115             'app': self.app,
cefcf8 116             'registry': registry,
MM 117             'request': request,
262cea 118             'root': self.root,
CM 119             'root_factory': self.root_factory,
120             'closer': self.closer,
121         }
cb9202 122
JA 123
124 class DummyEntryPoint(object):
125     def __init__(self, name, module):
126         self.name = name
127         self.module = module
128
129     def load(self):
130         return self.module
131
132
133 class DummyPkgResources(object):
134     def __init__(self, entry_point_values):
135         self.entry_points = []
136
137         for name, module in entry_point_values.items():
138             self.entry_points.append(DummyEntryPoint(name, module))
139
140     def iter_entry_points(self, name):
141         return self.entry_points
14be69 142
MM 143
144 class dummy_setup_logging(object):
145     def __call__(self, config_uri, global_conf):
146         self.config_uri = config_uri
678790 147         self.defaults = global_conf
14be69 148
MM 149
150 class DummyLoader(object):
3e489b 151     def __init__(self, settings=None, app_settings=None, app=None, server=None):
14be69 152         if not settings:
MM 153             settings = {}
154         if not app_settings:
155             app_settings = {}
156         self.settings = settings
157         self.app_settings = app_settings
158         self.app = app
3e489b 159         self.server = server
14be69 160         self.calls = []
MM 161
162     def __call__(self, uri):
3e489b 163         import plaster
MM 164         self.uri = plaster.parse_uri(uri)
14be69 165         return self
MM 166
167     def add_call(self, op, name, defaults):
168         self.calls.append({'op': op, 'name': name, 'defaults': defaults})
169
170     def get_settings(self, name=None, defaults=None):
171         self.add_call('settings', name, defaults)
678790 172         return self.settings.get(name, {})
14be69 173
MM 174     def get_wsgi_app(self, name=None, defaults=None):
175         self.add_call('app', name, defaults)
176         return self.app
177
178     def get_wsgi_app_settings(self, name=None, defaults=None):
179         self.add_call('app_settings', name, defaults)
180         return self.app_settings
181
3e489b 182     def get_wsgi_server(self, name=None, defaults=None):
MM 183         self.add_call('server', name, defaults)
184         return self.server
185
14be69 186     def setup_logging(self, defaults):
MM 187         self.add_call('logging', None, defaults)
188         self.defaults = defaults