############################################################################## # # Copyright (c) 2014 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Resolution ordering utility tests""" import unittest class Test__mergeOrderings(unittest.TestCase): def _callFUT(self, orderings): from zope.interface.ro import _mergeOrderings return _mergeOrderings(orderings) def test_empty(self): self.assertEqual(self._callFUT([]), []) def test_single(self): self.assertEqual(self._callFUT(['a', 'b', 'c']), ['a', 'b', 'c']) def test_w_duplicates(self): self.assertEqual(self._callFUT([['a'], ['b', 'a']]), ['b', 'a']) def test_suffix_across_multiple_duplicats(self): O1 = ['x', 'y', 'z'] O2 = ['q', 'z'] O3 = [1, 3, 5] O4 = ['z'] self.assertEqual(self._callFUT([O1, O2, O3, O4]), ['x', 'y', 'q', 1, 3, 5, 'z']) class Test__flatten(unittest.TestCase): def _callFUT(self, ob): from zope.interface.ro import _flatten return _flatten(ob) def test_w_empty_bases(self): class Foo(object): pass foo = Foo() foo.__bases__ = () self.assertEqual(self._callFUT(foo), [foo]) def test_w_single_base(self): class Foo(object): pass self.assertEqual(self._callFUT(Foo), [Foo, object]) def test_w_bases(self): class Foo(object): pass class Bar(Foo): pass self.assertEqual(self._callFUT(Bar), [Bar, Foo, object]) def test_w_diamond(self): class Foo(object): pass class Bar(Foo): pass class Baz(Foo): pass class Qux(Bar, Baz): pass self.assertEqual(self._callFUT(Qux), [Qux, Bar, Foo, object, Baz, Foo, object]) class Test_ro(unittest.TestCase): def _callFUT(self, ob): from zope.interface.ro import ro return ro(ob) def test_w_empty_bases(self): class Foo(object): pass foo = Foo() foo.__bases__ = () self.assertEqual(self._callFUT(foo), [foo]) def test_w_single_base(self): class Foo(object): pass self.assertEqual(self._callFUT(Foo), [Foo, object]) def test_w_bases(self): class Foo(object): pass class Bar(Foo): pass self.assertEqual(self._callFUT(Bar), [Bar, Foo, object]) def test_w_diamond(self): class Foo(object): pass class Bar(Foo): pass class Baz(Foo): pass class Qux(Bar, Baz): pass self.assertEqual(self._callFUT(Qux), [Qux, Bar, Baz, Foo, object])
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 481 B | 0644 |
|
advisory_testing.py | File | 1.23 KB | 0644 |
|
dummy.py | File | 888 B | 0644 |
|
idummy.py | File | 889 B | 0644 |
|
ifoo.py | File | 851 B | 0644 |
|
ifoo_other.py | File | 851 B | 0644 |
|
m1.py | File | 812 B | 0644 |
|
m2.py | File | 689 B | 0644 |
|
odd.py | File | 3.01 KB | 0644 |
|
test_adapter.py | File | 52.49 KB | 0644 |
|
test_advice.py | File | 11.22 KB | 0644 |
|
test_declarations.py | File | 58.65 KB | 0644 |
|
test_document.py | File | 16.46 KB | 0644 |
|
test_element.py | File | 1.29 KB | 0644 |
|
test_exceptions.py | File | 2.66 KB | 0644 |
|
test_interface.py | File | 71.17 KB | 0644 |
|
test_interfaces.py | File | 3.48 KB | 0644 |
|
test_odd_declarations.py | File | 6.75 KB | 0644 |
|
test_registry.py | File | 99.79 KB | 0644 |
|
test_ro.py | File | 3.23 KB | 0644 |
|
test_sorting.py | File | 1.57 KB | 0644 |
|
test_verify.py | File | 15.32 KB | 0644 |
|