mirror of https://github.com/scrapy/scrapy.git
Merge pull request #4074 from purvaudai/master
Added Pathlib.Path support: Issue #3731
This commit is contained in:
commit
c91390558d
|
|
@ -199,9 +199,9 @@ class FeedExporter(object):
|
|||
|
||||
def __init__(self, settings):
|
||||
self.settings = settings
|
||||
self.urifmt = settings['FEED_URI']
|
||||
if not self.urifmt:
|
||||
if not settings['FEED_URI']:
|
||||
raise NotConfigured
|
||||
self.urifmt = str(settings['FEED_URI'])
|
||||
self.format = settings['FEED_FORMAT'].lower()
|
||||
self.export_encoding = settings['FEED_EXPORT_ENCODING']
|
||||
self.storages = self._load_components('FEED_STORAGES')
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ from scrapy.utils.test import assert_aws_environ, get_s3_content_and_delete, get
|
|||
from scrapy.utils.python import to_native_str
|
||||
from scrapy.utils.project import get_project_settings
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class FileFeedStorageTest(unittest.TestCase):
|
||||
|
||||
|
|
@ -405,6 +407,7 @@ class FeedExportTest(unittest.TestCase):
|
|||
defaults = {
|
||||
'FEED_URI': res_uri,
|
||||
'FEED_FORMAT': 'csv',
|
||||
'FEED_PATH': res_path
|
||||
}
|
||||
defaults.update(settings or {})
|
||||
try:
|
||||
|
|
@ -413,7 +416,7 @@ class FeedExportTest(unittest.TestCase):
|
|||
spider_cls.start_urls = [s.url('/')]
|
||||
yield runner.crawl(spider_cls)
|
||||
|
||||
with open(res_path, 'rb') as f:
|
||||
with open(str(defaults['FEED_PATH']), 'rb') as f:
|
||||
content = f.read()
|
||||
|
||||
finally:
|
||||
|
|
@ -843,3 +846,17 @@ class FeedExportTest(unittest.TestCase):
|
|||
yield self.exported_data({}, settings)
|
||||
self.assertTrue(FromCrawlerCsvItemExporter.init_with_crawler)
|
||||
self.assertTrue(FromCrawlerFileFeedStorage.init_with_crawler)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_pathlib_uri(self):
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
feed_uri = Path(tmpdir) / 'res'
|
||||
settings = {
|
||||
'FEED_FORMAT': 'csv',
|
||||
'FEED_STORE_EMPTY': True,
|
||||
'FEED_URI': feed_uri,
|
||||
'FEED_PATH': feed_uri
|
||||
}
|
||||
data = yield self.exported_no_data(settings)
|
||||
self.assertEqual(data, b'')
|
||||
shutil.rmtree(tmpdir, ignore_errors=True)
|
||||
|
|
|
|||
Loading…
Reference in New Issue