def test_userInfo(self): urls = [("http://*****:*****@example.com/", "user:secret"), ("http://[email protected]/", "user"), ("http://:[email protected]/", ":secret"), ("http://example.com/", None)] for string, userInfo in urls: self.assertEquals(Url(string).userInfo, userInfo)
def test_usernameAndPassword(self): urls = [("http://*****:*****@example.com/", "user", "secret"), ("http://[email protected]/", "user", None), ("http://:[email protected]/", "", "secret"), ("http://example.com/", None, None)] for string, username, password in urls: u = Url(string) self.assertEquals(u.username, username) self.assertEquals(u.password, password)
def test_fetchNotFound(self): def page(page): self._basicPageTests(page) self._testPageContent(page) self.assertEquals(page.pageInfo, NOT_FOUND) url = Url.join(self.baseUrl, "/not/found") config = PageFetchConfig(url) d = PageFetcher(config, self.fetchAddress, self.fetchPort).getPage() d.addCallback(page) return d
def test_fetchSuccess(self): def page(page): self._basicPageTests(page) self._testPageContent(page) self.assertEquals(page.pageInfo, SUCCESS) url = Url.join(self.baseUrl, "/success") config = PageFetchConfig(url) d = PageFetcher(config, self.fetchAddress, self.fetchPort).getPage() d.addCallback(page) return d
def test_url1(self): u = Url("http://*****:*****@example.com/index.html?key=value") self.assertEquals(u.scheme, "http") self.assertEquals(u.username, "user") self.assertEquals(u.password, "secret") self.assertEquals(u.userInfo, "user:secret") self.assertEquals(u.host, "example.com") self.assertEquals(u.port, 80) self.assertFalse(u.explicitPort) self.assertEquals(str(u.path), "/index.html") self.assertEquals(str(u.query), "key=value")
def test_fetchPageRedirectWithNoLocation(self): def page(page): self._basicPageTests(page) self._testPageContent(page) self.assertIsNone(PageTools.getLocation(page.headers)) self.assertEquals(page.pageInfo, REDIRECT) url = Url.join(self.baseUrl, "/redirect/with/no/location") config = PageFetchConfig(url) d = PageFetcher(config, self.fetchAddress, self.fetchPort).getPage() d.addCallback(page) return d
def test_configDefaults(self): u = Url("http://example.com/path") config = PageFetchConfig(u) self.assertEquals(config.url, u) self.assertEquals(config.method, "GET") self.assertIsNone(config.postData) self.assertIsInstance(config.headers, list) self.assertEquals(config.headers, []) self.assertIsNone(config.agent) self.assertEquals(config.timeout, 0) self.assertIsInstance(config.cookies, list) self.assertEquals(config.cookies, [])
def test_fetchRedirect(self): def page(page): self._basicPageTests(page) self._testPageNoContent(page) redirectUrl = Url("http://localhost/another/path") self.assertEquals(PageTools.getLocation(page.headers), redirectUrl) self.assertEquals(page.pageInfo, REDIRECT) url = Url.join(self.baseUrl, "/redirect") config = PageFetchConfig(url) d = PageFetcher(config, self.fetchAddress, self.fetchPort).getPage() d.addCallback(page) return d
def test_netloc(self): urls = [("http://*****:*****@example.com/index.html?key=value", "user:[email protected]"), ("http://*****:*****@example.com:80/index.html?key=value", "user:[email protected]:80"), ("http://[email protected]/index.html?key=value", "*****@*****.**"), ("http://:[email protected]/index.html?key=value", ":[email protected]"), ("http://example.com/index.html?key=value", "example.com"), ("http://example.com:80/index.html?key=value", "example.com:80")] for string, netloc in urls: self.assertEquals(Url(string).netloc, netloc)
def test_configPopulated(self): u = Url("http://example.com/path") headers = [Header("name", "value")] cookies = [ Cookie.buildCookie("cookie1", "value1"), Cookie.buildCookie("cookie2", "value2"), Cookie.buildCookie("cookie3", "value3") ] config = PageFetchConfig(u, method="POST", postData="my string", headers=headers, agent="my agent", timeout=1, cookies=cookies) self.assertEquals(config.url, u) self.assertEquals(config.method, "POST") self.assertEquals(config.postData, "my string") self.assertEquals(config.headers, headers) self.assertEquals(config.agent, "my agent") self.assertEquals(config.timeout, 1) self.assertEquals(config.cookies, cookies)
def setUp(self): self.startServer() self.baseUrl = Url("http://127.0.0.1:8000/") self.fetchAddress = Address(self.baseUrl.host) self.fetchPort = self.baseUrl.port
def page(page): self._basicPageTests(page) self._testPageNoContent(page) redirectUrl = Url("http://localhost/another/path") self.assertEquals(PageTools.getLocation(page.headers), redirectUrl) self.assertEquals(page.pageInfo, REDIRECT)
def test_eq(self): urls = [("http://example.com", "http://example.com")] for init1, init2 in urls: self.assertEquals(Url(init1), Url(init2))