(self)
| 1871 | for h in opener.handlers)) |
| 1872 | |
| 1873 | def test_build_opener(self): |
| 1874 | class MyHTTPHandler(urllib.request.HTTPHandler): |
| 1875 | pass |
| 1876 | |
| 1877 | class FooHandler(urllib.request.BaseHandler): |
| 1878 | def foo_open(self): |
| 1879 | pass |
| 1880 | |
| 1881 | class BarHandler(urllib.request.BaseHandler): |
| 1882 | def bar_open(self): |
| 1883 | pass |
| 1884 | |
| 1885 | build_opener = urllib.request.build_opener |
| 1886 | |
| 1887 | o = build_opener(FooHandler, BarHandler) |
| 1888 | self.opener_has_handler(o, FooHandler) |
| 1889 | self.opener_has_handler(o, BarHandler) |
| 1890 | |
| 1891 | # can take a mix of classes and instances |
| 1892 | o = build_opener(FooHandler, BarHandler()) |
| 1893 | self.opener_has_handler(o, FooHandler) |
| 1894 | self.opener_has_handler(o, BarHandler) |
| 1895 | |
| 1896 | # subclasses of default handlers override default handlers |
| 1897 | o = build_opener(MyHTTPHandler) |
| 1898 | self.opener_has_handler(o, MyHTTPHandler) |
| 1899 | |
| 1900 | # a particular case of overriding: default handlers can be passed |
| 1901 | # in explicitly |
| 1902 | o = build_opener() |
| 1903 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1904 | o = build_opener(urllib.request.HTTPHandler) |
| 1905 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1906 | o = build_opener(urllib.request.HTTPHandler()) |
| 1907 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1908 | |
| 1909 | # Issue2670: multiple handlers sharing the same base class |
| 1910 | class MyOtherHTTPHandler(urllib.request.HTTPHandler): |
| 1911 | pass |
| 1912 | |
| 1913 | o = build_opener(MyHTTPHandler, MyOtherHTTPHandler) |
| 1914 | self.opener_has_handler(o, MyHTTPHandler) |
| 1915 | self.opener_has_handler(o, MyOtherHTTPHandler) |
| 1916 | |
| 1917 | def test_HTTPError_interface(self): |
| 1918 | """ |
nothing calls this directly
no test coverage detected