|
16 | 16 | import types |
17 | 17 | import unittest |
18 | 18 | import warnings |
19 | | -from collections import OrderedDict |
20 | 19 | from operator import neg |
21 | | -from test.support import (TESTFN, unlink, run_unittest, check_warnings, |
22 | | - cpython_only) |
| 20 | +from test.support import TESTFN, unlink, run_unittest, check_warnings |
23 | 21 | from test.support.script_helper import assert_python_ok |
24 | 22 | try: |
25 | 23 | import pty, signal |
@@ -1780,194 +1778,6 @@ def test_type_doc(self): |
1780 | 1778 | A.__doc__ = doc |
1781 | 1779 | self.assertEqual(A.__doc__, doc) |
1782 | 1780 |
|
1783 | | - def test_type_definition_order_nonempty(self): |
1784 | | - class Spam: |
1785 | | - b = 1 |
1786 | | - c = 3 |
1787 | | - a = 2 |
1788 | | - d = 4 |
1789 | | - eggs = 2 |
1790 | | - e = 5 |
1791 | | - b = 42 |
1792 | | - |
1793 | | - self.assertEqual(Spam.__definition_order__, |
1794 | | - ('__module__', '__qualname__', |
1795 | | - 'b', 'c', 'a', 'd', 'eggs', 'e')) |
1796 | | - |
1797 | | - def test_type_definition_order_empty(self): |
1798 | | - class Empty: |
1799 | | - pass |
1800 | | - |
1801 | | - self.assertEqual(Empty.__definition_order__, |
1802 | | - ('__module__', '__qualname__')) |
1803 | | - |
1804 | | - def test_type_definition_order_on_instance(self): |
1805 | | - class Spam: |
1806 | | - a = 2 |
1807 | | - b = 1 |
1808 | | - c = 3 |
1809 | | - with self.assertRaises(AttributeError): |
1810 | | - Spam().__definition_order__ |
1811 | | - |
1812 | | - def test_type_definition_order_set_to_None(self): |
1813 | | - class Spam: |
1814 | | - a = 2 |
1815 | | - b = 1 |
1816 | | - c = 3 |
1817 | | - Spam.__definition_order__ = None |
1818 | | - self.assertEqual(Spam.__definition_order__, None) |
1819 | | - |
1820 | | - def test_type_definition_order_set_to_tuple(self): |
1821 | | - class Spam: |
1822 | | - a = 2 |
1823 | | - b = 1 |
1824 | | - c = 3 |
1825 | | - Spam.__definition_order__ = ('x', 'y', 'z') |
1826 | | - self.assertEqual(Spam.__definition_order__, ('x', 'y', 'z')) |
1827 | | - |
1828 | | - def test_type_definition_order_deleted(self): |
1829 | | - class Spam: |
1830 | | - a = 2 |
1831 | | - b = 1 |
1832 | | - c = 3 |
1833 | | - del Spam.__definition_order__ |
1834 | | - self.assertEqual(Spam.__definition_order__, None) |
1835 | | - |
1836 | | - def test_type_definition_order_set_to_bad_type(self): |
1837 | | - class Spam: |
1838 | | - a = 2 |
1839 | | - b = 1 |
1840 | | - c = 3 |
1841 | | - Spam.__definition_order__ = 42 |
1842 | | - self.assertEqual(Spam.__definition_order__, 42) |
1843 | | - |
1844 | | - def test_type_definition_order_builtins(self): |
1845 | | - self.assertEqual(object.__definition_order__, None) |
1846 | | - self.assertEqual(type.__definition_order__, None) |
1847 | | - self.assertEqual(dict.__definition_order__, None) |
1848 | | - self.assertEqual(type(None).__definition_order__, None) |
1849 | | - |
1850 | | - def test_type_definition_order_dunder_names_included(self): |
1851 | | - class Dunder: |
1852 | | - VAR = 3 |
1853 | | - def __init__(self): |
1854 | | - pass |
1855 | | - |
1856 | | - self.assertEqual(Dunder.__definition_order__, |
1857 | | - ('__module__', '__qualname__', |
1858 | | - 'VAR', '__init__')) |
1859 | | - |
1860 | | - def test_type_definition_order_only_dunder_names(self): |
1861 | | - class DunderOnly: |
1862 | | - __xyz__ = None |
1863 | | - def __init__(self): |
1864 | | - pass |
1865 | | - |
1866 | | - self.assertEqual(DunderOnly.__definition_order__, |
1867 | | - ('__module__', '__qualname__', |
1868 | | - '__xyz__', '__init__')) |
1869 | | - |
1870 | | - def test_type_definition_order_underscore_names(self): |
1871 | | - class HalfDunder: |
1872 | | - __whether_to_be = True |
1873 | | - or_not_to_be__ = False |
1874 | | - |
1875 | | - self.assertEqual(HalfDunder.__definition_order__, |
1876 | | - ('__module__', '__qualname__', |
1877 | | - '_HalfDunder__whether_to_be', 'or_not_to_be__')) |
1878 | | - |
1879 | | - def test_type_definition_order_with_slots(self): |
1880 | | - class Slots: |
1881 | | - __slots__ = ('x', 'y') |
1882 | | - a = 1 |
1883 | | - b = 2 |
1884 | | - |
1885 | | - self.assertEqual(Slots.__definition_order__, |
1886 | | - ('__module__', '__qualname__', |
1887 | | - '__slots__', 'a', 'b')) |
1888 | | - |
1889 | | - def test_type_definition_order_overwritten_None(self): |
1890 | | - class OverwrittenNone: |
1891 | | - __definition_order__ = None |
1892 | | - a = 1 |
1893 | | - b = 2 |
1894 | | - c = 3 |
1895 | | - |
1896 | | - self.assertEqual(OverwrittenNone.__definition_order__, None) |
1897 | | - |
1898 | | - def test_type_definition_order_overwritten_tuple(self): |
1899 | | - class OverwrittenTuple: |
1900 | | - __definition_order__ = ('x', 'y', 'z') |
1901 | | - a = 1 |
1902 | | - b = 2 |
1903 | | - c = 3 |
1904 | | - |
1905 | | - self.assertEqual(OverwrittenTuple.__definition_order__, |
1906 | | - ('x', 'y', 'z')) |
1907 | | - |
1908 | | - def test_type_definition_order_overwritten_bad_item(self): |
1909 | | - with self.assertRaises(TypeError): |
1910 | | - class PoorlyOverwritten: |
1911 | | - __definition_order__ = ('a', 2, 'c') |
1912 | | - a = 1 |
1913 | | - b = 2 |
1914 | | - c = 3 |
1915 | | - |
1916 | | - def test_type_definition_order_overwritten_bad_type(self): |
1917 | | - with self.assertRaises(TypeError): |
1918 | | - class PoorlyOverwritten: |
1919 | | - __definition_order__ = ['a', 2, 'c'] |
1920 | | - a = 1 |
1921 | | - b = 2 |
1922 | | - c = 3 |
1923 | | - |
1924 | | - def test_type_definition_order_metaclass(self): |
1925 | | - class Meta(type): |
1926 | | - SPAM = 42 |
1927 | | - |
1928 | | - def __init__(self, *args, **kwargs): |
1929 | | - super().__init__(*args, **kwargs) |
1930 | | - |
1931 | | - self.assertEqual(Meta.__definition_order__, |
1932 | | - ('__module__', '__qualname__', |
1933 | | - 'SPAM', '__init__')) |
1934 | | - |
1935 | | - def test_type_definition_order_OrderedDict(self): |
1936 | | - class Meta(type): |
1937 | | - def __prepare__(self, *args, **kwargs): |
1938 | | - return OrderedDict() |
1939 | | - |
1940 | | - class WithODict(metaclass=Meta): |
1941 | | - x='y' |
1942 | | - |
1943 | | - self.assertEqual(WithODict.__definition_order__, |
1944 | | - ('__module__', '__qualname__', 'x')) |
1945 | | - |
1946 | | - class Meta(type): |
1947 | | - def __prepare__(self, *args, **kwargs): |
1948 | | - class ODictSub(OrderedDict): |
1949 | | - pass |
1950 | | - return ODictSub() |
1951 | | - |
1952 | | - class WithODictSub(metaclass=Meta): |
1953 | | - x='y' |
1954 | | - |
1955 | | - self.assertEqual(WithODictSub.__definition_order__, |
1956 | | - ('__module__', '__qualname__', 'x')) |
1957 | | - |
1958 | | - @cpython_only |
1959 | | - def test_type_definition_order_cpython(self): |
1960 | | - # some implementations will have an ordered-by-default dict. |
1961 | | - |
1962 | | - class Meta(type): |
1963 | | - def __prepare__(self, *args, **kwargs): |
1964 | | - return {} |
1965 | | - |
1966 | | - class NotOrdered(metaclass=Meta): |
1967 | | - x='y' |
1968 | | - |
1969 | | - self.assertEqual(NotOrdered.__definition_order__, None) |
1970 | | - |
1971 | 1781 | def test_bad_args(self): |
1972 | 1782 | with self.assertRaises(TypeError): |
1973 | 1783 | type() |
|
0 commit comments