diff --git a/scrapy/tests/test_downloadermiddleware_defaultheaders.py b/scrapy/tests/test_downloadermiddleware_defaultheaders.py new file mode 100644 index 000000000..cd1624eb4 --- /dev/null +++ b/scrapy/tests/test_downloadermiddleware_defaultheaders.py @@ -0,0 +1,30 @@ +from unittest import TestCase + +from scrapy.conf import settings +from scrapy.contrib.downloadermiddleware.defaultheaders import DefaultHeadersMiddleware +from scrapy.http import Response, Request +from scrapy.spider import BaseSpider + + +class TestDefaultHeadersMiddleware(TestCase): + + def setUp(self): + self.spider = BaseSpider() + self.mw = DefaultHeadersMiddleware() + self.default_headers = dict([(k, [v]) for k, v in \ + settings.get('DEFAULT_REQUEST_HEADERS').iteritems()]) + + def test_process_request(self): + req = Request('http://www.scrapytest.org') + self.mw.process_request(req, self.spider) + self.assertEquals(req.headers, self.default_headers) + + def test_update_headers(self): + headers = {'Accept-Language': ['es'], 'Test-Header': ['test']} + req = Request('http://www.scrapytest.org', headers=headers) + self.assertEquals(req.headers, headers) + + self.mw.process_request(req, self.spider) + self.default_headers.update(headers) + self.assertEquals(req.headers, self.default_headers) + diff --git a/scrapy/tests/test_downloadermiddleware_stats.py b/scrapy/tests/test_downloadermiddleware_stats.py new file mode 100644 index 000000000..fb117614b --- /dev/null +++ b/scrapy/tests/test_downloadermiddleware_stats.py @@ -0,0 +1,39 @@ +from unittest import TestCase + +from scrapy.conf import settings +from scrapy.contrib.downloadermiddleware.stats import DownloaderStats +from scrapy.http import Request, Response +from scrapy.spider import BaseSpider +from scrapy.stats import stats + + +class TestDownloaderStats(TestCase): + + def setUp(self): + self.spider = BaseSpider() + self.spider.domain_name = 'scrapytest.org' + self.mw = DownloaderStats() + + stats.open_domain(self.spider.domain_name) + + self.req = Request('scrapytest.org') + self.res = Response('scrapytest.org', status=400) + + def test_process_request(self): + self.mw.process_request(self.req, self.spider) + self.assertEqual(stats.get_value('downloader/request_count', \ + domain=self.spider.domain_name), 1) + + def test_process_response(self): + self.mw.process_response(self.req, self.res, self.spider) + self.assertEqual(stats.get_value('downloader/response_count', \ + domain=self.spider.domain_name), 1) + + def test_process_exception(self): + self.mw.process_exception(self.req, Exception(), self.spider) + self.assertEqual(stats.get_value('downloader/exception_count', \ + domain=self.spider.domain_name), 1) + + def tearUp(self): + stats.close_domain(self.spider.domain_name) +