(self)
| 1854 | for h in opener.handlers)) |
| 1855 | |
| 1856 | def test_build_opener(self): |
| 1857 | class MyHTTPHandler(urllib.request.HTTPHandler): |
| 1858 | pass |
| 1859 | |
| 1860 | class FooHandler(urllib.request.BaseHandler): |
| 1861 | def foo_open(self): |
| 1862 | pass |
| 1863 | |
| 1864 | class BarHandler(urllib.request.BaseHandler): |
| 1865 | def bar_open(self): |
| 1866 | pass |
| 1867 | |
| 1868 | build_opener = urllib.request.build_opener |
| 1869 | |
| 1870 | o = build_opener(FooHandler, BarHandler) |
| 1871 | self.opener_has_handler(o, FooHandler) |
| 1872 | self.opener_has_handler(o, BarHandler) |
| 1873 | |
| 1874 | # can take a mix of classes and instances |
| 1875 | o = build_opener(FooHandler, BarHandler()) |
| 1876 | self.opener_has_handler(o, FooHandler) |
| 1877 | self.opener_has_handler(o, BarHandler) |
| 1878 | |
| 1879 | # subclasses of default handlers override default handlers |
| 1880 | o = build_opener(MyHTTPHandler) |
| 1881 | self.opener_has_handler(o, MyHTTPHandler) |
| 1882 | |
| 1883 | # a particular case of overriding: default handlers can be passed |
| 1884 | # in explicitly |
| 1885 | o = build_opener() |
| 1886 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1887 | o = build_opener(urllib.request.HTTPHandler) |
| 1888 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1889 | o = build_opener(urllib.request.HTTPHandler()) |
| 1890 | self.opener_has_handler(o, urllib.request.HTTPHandler) |
| 1891 | |
| 1892 | # Issue2670: multiple handlers sharing the same base class |
| 1893 | class MyOtherHTTPHandler(urllib.request.HTTPHandler): |
| 1894 | pass |
| 1895 | |
| 1896 | o = build_opener(MyHTTPHandler, MyOtherHTTPHandler) |
| 1897 | self.opener_has_handler(o, MyHTTPHandler) |
| 1898 | self.opener_has_handler(o, MyOtherHTTPHandler) |
| 1899 | |
| 1900 | def test_HTTPError_interface(self): |
| 1901 | """ |
nothing calls this directly
no test coverage detected