1
1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
3
# Copyright 2012 OpenStack LLC
3
# Copyright 2012 OpenStack Foundation
5
5
# Licensed under the Apache License, Version 2.0 (the "License"); you may
6
6
# not use this file except in compliance with the License. You may obtain
211
211
dependency.reset()
213
213
self.assertFalse(dependency.REGISTRY)
215
def test_optional_dependency_not_provided(self):
216
requirement_name = uuid.uuid4().hex
218
@dependency.optional(requirement_name)
224
dependency.resolve_future_dependencies()
226
self.assertIsNone(getattr(c1_inst, requirement_name))
228
def test_optional_dependency_provided(self):
229
requirement_name = uuid.uuid4().hex
231
@dependency.optional(requirement_name)
235
@dependency.provider(requirement_name)
242
dependency.resolve_future_dependencies()
244
self.assertIs(getattr(c1_inst, requirement_name), p1_inst)
246
def test_optional_and_required(self):
247
p1_name = uuid.uuid4().hex
248
p2_name = uuid.uuid4().hex
249
optional_name = uuid.uuid4().hex
251
@dependency.provider(p1_name)
252
@dependency.requires(p2_name)
253
@dependency.optional(optional_name)
257
@dependency.provider(p2_name)
258
@dependency.requires(p1_name)
265
dependency.resolve_future_dependencies()
267
self.assertIs(getattr(p1, p2_name), p2)
268
self.assertIs(getattr(p2, p1_name), p1)
269
self.assertIsNone(getattr(p1, optional_name))