@@ 394-408 (lines=15) @@ | ||
391 | assert Test.ns.var2 == 1 |
|
392 | ||
393 | ||
394 | def test_multiple_inheritance(namespaces): |
|
395 | class Test1(namespaces.Namespaceable): |
|
396 | with namespaces.Namespace() as ns: |
|
397 | with namespaces.Namespace() as ns: |
|
398 | var = 1 |
|
399 | ||
400 | class Test2(namespaces.Namespaceable): |
|
401 | with namespaces.Namespace() as ns: |
|
402 | var = 2 |
|
403 | ||
404 | class Test3(Test2, Test1): |
|
405 | pass |
|
406 | ||
407 | assert Test3.ns.ns.var == 1 |
|
408 | assert Test3.ns.var == 2 |
|
409 | ||
410 | ||
411 | def test_star_attr_functions(namespaces): |
|
@@ 319-330 (lines=12) @@ | ||
316 | assert Test.ns.d.name == 'd' |
|
317 | ||
318 | ||
319 | def test_basic_meta(namespaces): |
|
320 | class Meta(namespaces.Namespaceable, type(namespaces.Namespaceable)): |
|
321 | with namespaces.Namespace() as ns: |
|
322 | meta_var = 1 |
|
323 | ||
324 | class Test(namespaces.Namespaceable, metaclass=Meta): |
|
325 | pass |
|
326 | ||
327 | assert Meta.ns.meta_var == 1 |
|
328 | assert Test.ns.meta_var == 1 |
|
329 | with pytest.raises(AttributeError): |
|
330 | Test().ns.meta_var |
|
331 | ||
332 | ||
333 | def test_somewhat_weirder_meta(namespaces): |
|
@@ 206-218 (lines=13) @@ | ||
203 | assert Subclass().ns.bar == 3 |
|
204 | ||
205 | ||
206 | def test_advanced_overlap(namespaces): |
|
207 | class Test(namespaces.Namespaceable): |
|
208 | with namespaces.Namespace() as ns: |
|
209 | foo = 2 |
|
210 | with namespaces.Namespace() as ns: |
|
211 | qux = 4 |
|
212 | ||
213 | class Subclass(Test): |
|
214 | with namespaces.Namespace() as ns: |
|
215 | bar = 3 |
|
216 | assert Subclass().ns.foo == 2 |
|
217 | assert Subclass().ns.bar == 3 |
|
218 | assert Subclass().ns.ns.qux == 4 |
|
219 | ||
220 | ||
221 | def test_empty_nameless(namespaces): |