Commit Graph

1660 Commits

Author SHA1 Message Date
Adrián Chaves d54c4496ee Refactor guess_scheme 2020-07-13 14:37:08 +02:00
Andrey Rahmatullin 0ebba175ea
Merge pull request #4666 from Gallaecio/execution-access
Fix permission handling on project generation from template files
2020-07-13 16:01:06 +05:00
Andrey Rahmatullin b6f8693db9
Merge pull request #4673 from elacuesta/remove-backslash
Remove backslash
2020-07-13 11:14:00 +05:00
Aditya 64c6af10e1 refactor: use str instead of to_unicode 2020-07-13 00:57:49 +05:30
Aditya Kumar 3f7e8635f4
Allow the parse command to write data to a file (#4377) 2020-07-11 08:48:24 +02:00
Eugenio Lacuesta 9aea1f0961
Remove backslash (tests) 2020-07-09 11:04:46 -03:00
Eugenio Lacuesta 2be2bdd2df
Merge remote-tracking branch 'upstream/master' into spider.parse 2020-07-08 14:00:54 -03:00
ajaymittur28 75bff7b6d3 Update url contract value 2020-07-08 19:48:42 +05:30
Aditya 2ea7d82534 feat: H2ClientFactory 2020-07-08 18:57:13 +05:30
ajaymittur28 3e98ed24b6 Convert f-string to .format() 2020-07-08 17:13:57 +05:30
Ajay Mittur b6d4f28ea7
Merge branch 'master' into scrapy-check-test 2020-07-08 15:13:37 +05:30
Adrián Chaves 7e38615703 Remove unused import 2020-07-07 15:30:19 +02:00
Adrián Chaves ca77ca1f75 Generate read-only files on the fly 2020-07-07 14:44:03 +02:00
Adrián Chaves e1450799ce Remove debug test case variable 2020-07-07 14:11:37 +02:00
Adrián Chaves a3afff4a0e Fix style issue 2020-07-07 14:11:02 +02:00
Adrián Chaves 79b4dfc53e Fix permission handling on project generation from template files 2020-07-07 14:07:04 +02:00
Aditya 1c40dfa740 fix: handle CONNECTION_LOST & RESET separately 2020-07-07 15:36:41 +05:30
ajaymittur28 770a8127e8 Added basic `scrapy check` tests 2020-07-07 15:23:29 +05:30
Adrián Chaves 17aec5944c
Update tests/CrawlerRunner/ip_address.py
Co-authored-by: Eugenio Lacuesta <1731933+elacuesta@users.noreply.github.com>
2020-07-06 10:47:25 +02:00
Adrián Chaves ec06cf79a6
Update tests/CrawlerRunner/ip_address.py
Co-authored-by: Eugenio Lacuesta <1731933+elacuesta@users.noreply.github.com>
2020-07-06 10:47:11 +02:00
Aditya a94b30342a test: reduce test data size to 1MB 2020-07-06 12:49:12 +05:30
BroodingKangaroo 6454d456d2 Make check of placeholder less strict 2020-07-03 10:24:13 +03:00
Adrián Chaves eb93774256 TrackrefTestCase.test_get_oldest: protect from lack of precision 2020-07-03 01:41:47 +02:00
Adrián Chaves 3199048520 Complete Azure Pipelines CI setup 2020-07-03 00:56:24 +02:00
Adrián Chaves 6e58da1dcd
Merge branch 'master' into azure-pipelines 2020-07-02 17:49:42 +02:00
BroodingKangaroo 1e245046ed Change setting name. Add leading zeroes to batch_id. Minor fixes. 2020-07-02 12:38:08 +03:00
Aditya 4acdc2e5d6 refactor: use __qualname__, () for large strings 2020-07-01 20:15:33 +05:30
Aditya c361fe0d3b feat: check for invalid hostname
- Initiating requests having hostname or (ip_address, port) different
from the peer to which HTTP/2 connection is made can lead to closing the
whole connection and close out all the pending streams.
- This change aims to fix that problem
- Add required tests
- Save hostname & port in H2ConnectionMetadataDict
2020-07-01 18:14:44 +05:30
BroodingKangaroo 7b1d3c35ea Minor updates 2020-07-01 12:24:31 +03:00
Aditya 7b1ad995a4 test: query params, certificate & ip_address
- refactor from str.format() to f-strings
2020-07-01 10:45:36 +05:30
Aditya 50dd9271b4 fix: disable redundant logs
- while testing the job exceeded the maximum log length
and was terminated
- reduce the number of requests from 20 to 10
2020-06-30 07:36:56 +05:30
Aditya 26ab3e4137 feat: FIFO policy to handle large no. of requests
- add required test -- test by sending 1000 requests
- increase test timeout to 180 seconds to account for tests taking long
time
2020-06-30 06:44:20 +05:30
Aditya d17417b03a Merge branch 'master' of https://github.com/scrapy/scrapy into h2-client-protocol 2020-06-29 18:43:42 +05:30
Aditya Kumar e46b47c365
Renew the localhost certificate for tests (#4650)
Validity
  Not Before: Jun 28 12:54:15 2020 GMT
  Not After : Jun 28 12:54:15 2021 GMT
Subject: C = IE, O = Scrapy, CN = localhost
2020-06-29 15:05:13 +02:00
Aditya 90a7007f88 test: warnsize logs, no content header, dataloss 2020-06-29 18:29:31 +05:30
Marc Hernández 464f24f8c1
Add --data-raw to utils.curl and fix missing method with data (#4612) 2020-06-29 14:20:29 +02:00
Aditya 690dd7f38b test: GET & POST request test for h2 client
- Remove repeated dependency Twisted from setup.py
- Test for both GET & POST when
  - Only 1 request
  - Large number (=20) of requests
and
  - Small Data (10 KB) per request
  - Large Data (10 MB) per request
- Test when request is cancelled by the client'

BREAKING CHANGES
Tests raises OpenSSL.SSL.Error when run using tox. However, all tests
passes when ran using `python -m unittest`.
2020-06-28 16:38:49 +05:30
BroodingKangaroo 05c2587c6a Docs update and tiny fixes 2020-06-28 09:45:45 +03:00
BroodingKangaroo 88a52198b9 Add batch_item_count support in FEEDS setting 2020-06-27 12:45:08 +03:00
BroodingKangaroo c3cee74fd4 Change default value of FEED_STORAGE_BATCH_ITEM_COUNT to 0 2020-06-26 18:45:21 +03:00
BroodingKangaroo 77333666f1 resolve conflicts 2020-06-26 14:55:46 +03:00
Aditya 065b3153fe Merge branch 'master' of https://github.com/scrapy/scrapy into h2-client-protocol 2020-06-24 07:51:41 +05:30
Aditya a97ac0adf8 test: GET request for HTTP2Client using mockserver 2020-06-24 06:40:20 +05:30
Lukas Anzinger 3672f5f988 Spider constructor expects name as argument, not start_urls.
Fixes #4644
2020-06-23 14:56:12 +02:00
Eugenio Lacuesta c7f1c7e3f3
Merge branch 'master' into feat-685 2020-06-19 21:30:54 -03:00
Stanislau Hluboki a4bfd5ab6f Fix duplicated feed logs 2020-06-19 17:51:56 +03:00
Aditya 700df3eeb7 test: mockserver with h2 protocol for tests
- add Twisted[http2] in setup.py requirements
- add test_protocol.py to test the current implementation

BREAKING CHANGES
test_download times out because of no protocol negotiated between
Mockserver and HTTP/2 client
2020-06-17 21:02:14 +05:30
Stas Glubokiy 3d027fb578
Fix missing storage.store calls in FeedExporter.close_spider (#4626) 2020-06-17 17:08:14 +02:00
Eugenio Lacuesta ec98dabfab
Support for dataclass and attrs items (#3881) 2020-06-14 11:45:27 +02:00
Eugenio Lacuesta 91e505edfe
Return single element from coroutine callback (#4609) 2020-06-02 10:32:14 +02:00
Bulat Khabibullin 5cef927944
Implement TextResponse.json() (#4574) 2020-06-01 06:57:23 +02:00
Mikhail Korobov 13215cfb71
Merge pull request #4559 from elacuesta/cancel-request-download
Stop response download from signal handler
2020-05-27 21:46:00 +05:00
Andrey Rahmatullin ff699eb1f8
Merge pull request #4599 from elacuesta/LocalWeakReferencedCache-getitem-fix
Fix KeyError in LocalWeakReferencedCache
2020-05-27 21:42:04 +05:00
Andrey Rahmatullin 7bf375098e
Merge pull request #2400 from elacuesta/keep_cookie_header
[MRG+1] CookiesMiddleware: keep cookies from 'Cookie' request header, fix encoding
2020-05-27 21:41:43 +05:00
Eugenio Lacuesta 44d5801b05
Fix KeyError in LocalWeakReferencedCache 2020-05-27 11:15:33 -03:00
Eugenio Lacuesta 492197e477
StopDownload: store response in the exception instead of the failure 2020-05-27 10:45:07 -03:00
Eugenio Lacuesta 634ad5ebca
Merge remote-tracking branch 'upstream/master' into cancel-request-download 2020-05-27 10:27:45 -03:00
Kyle Altendorf 5b2af85289
Link to issue describing troublesome pytest versions 2020-05-22 15:09:58 -04:00
Eugenio Lacuesta f6ed5edc31
CookiesMiddleware: keep cookies from 'Cookie' request header 2020-05-21 11:07:41 -03:00
BroodingKangaroo 677e619d37 Fix too long lines 2020-05-21 14:57:03 +03:00
BroodingKangaroo 5f6c1dceb1 Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries 2020-05-21 12:43:04 +03:00
Eugenio Lacuesta fbe915d9cb
StopDownload: check partial response contents 2020-05-20 20:20:30 -03:00
Eugenio Lacuesta 276721a5dc
Stop response download 2020-05-20 14:46:26 -03:00
Kyle Altendorf eb8493f09c
Incompatible with pytest 5.4 and 5.4.1 2020-05-20 09:21:34 -04:00
Mikhail Korobov febe82a907
Merge pull request #4486 from ilias-ant/add-file-status-on-media-pipelines-file-info
Add status (downloaded, uptodate) to files information
2020-05-18 22:30:30 +05:00
Mikhail Korobov 314adf6c38
Merge pull request #4237 from elacuesta/flake8-max-line-length
Set flake8-max-line-length to 119
2020-05-16 03:26:45 +05:00
Mikhail Korobov 14612fc3d3
Merge pull request #4534 from elacuesta/deprecate-baseitem
Deprecate scrapy.item.BaseItem
2020-05-16 03:24:06 +05:00
BroodingKangaroo 10ae1a284f Minor fixes 2020-05-15 22:50:54 +03:00
Adrián Chaves 36c3c9713e
Run tests with Python 3.5.0 (#4518)
* Run tests with Python 3.5.0

* Use Ubuntu Trusty 14.04 to test Python 3.5.0

* Use mitmproxy<3.0.0 on Python 3.5.0

* Skip tests requiring mitmproxy in Python 3.5.0

* Change the minimum Python version from 3.5 to 3.5.1

* Do not prevent Scrapy from working with Python 3.5.0

* Force system Python 3.5.1

* Do not install a non-system Python in Python 3.5.1 jobs

* Switch to Trusty to be able to test Xenial’s Python version ¯\_(ツ)_/¯

* Add missing trusty

* Stop breaking old PyPy

* Allow installing Scrapy on Python 3.5.0
2020-05-15 22:37:56 +05:00
Eugenio Lacuesta 3eeecb4273
Merge branch 'master' into flake8-max-line-length 2020-05-15 11:11:20 -03:00
Marc Hernández fffb0a5b6a
replace set constructor with set literals (#4573) 2020-05-15 15:23:09 +02:00
BroodingKangaroo 0627bf476e Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries 2020-05-14 20:59:22 +03:00
Eugenio Lacuesta ee13c3e95f
Merge branch 'master' into deprecate-baseitem 2020-05-14 13:31:16 -03:00
Eugenio Lacuesta 89d0c98f7a
Merge remote-tracking branch 'upstream/master' into flake8-remove-e128 2020-05-14 11:35:30 -03:00
Eugenio Lacuesta df8a1d1c01
Flake8: Remove E741 2020-05-14 10:40:50 -03:00
BroodingKangaroo 111a58fe3d Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries 2020-05-14 09:53:14 +03:00
Adrián Chaves e31b6ccc45
Merge branch 'master' into flake8-remove-e128 2020-05-13 22:39:45 +02:00
BroodingKangaroo 2327ecead0 Rename FEED_STORAGE_BATCH_SIZE to FEED_STORAGE_BATCH_ITEM_COUNT 2020-05-13 22:50:04 +03:00
Adrián Chaves 7dac99bb12
Merge branch 'master' into deprecate-baseitem 2020-05-13 20:35:03 +02:00
Andrey Rahmatullin 519f752d6d
Merge pull request #4566 from elacuesta/flake8-remove-f841
Flake8: remove F841
2020-05-13 11:46:48 +05:00
Aditya Kumar 97532a9144
test(spiderloader): no duplicate spider names (#4560) 2020-05-12 17:10:09 +02:00
willbeaufoy cf9be5344a
Prevent create_instance() returning None (#4532)
Currently create_instance() can return None if an extension is
incorrectly implemented, but the extension will still show up as
enabled in the logs. This can cause confusion, as in the linked bug.

This change prevents this occurring by throwing an error if
create_instance() will return None.
2020-05-11 20:35:25 +02:00
nsirletti cb8140a42a
Deprecate Response.body_as_unicode() (#4555)
Co-authored-by: Nicolas Sirletti <n.sirletti@gmail.com>
2020-05-11 20:20:31 +02:00
Eugenio Lacuesta 6f8758624c
Flake8: remove F841 2020-05-11 13:50:34 -03:00
Eugenio Lacuesta 25e9bc2d0d
Merge branch 'master' into flake8-remove-e128 2020-05-11 13:23:57 -03:00
Eugenio Lacuesta fb7ba6964d
Merge branch 'master' into deprecate-baseitem 2020-05-11 10:21:56 -03:00
Mikhail Korobov 892467cb8a
Merge pull request #4541 from elacuesta/pickle-adjustments
Pickle: use protocol 4, update tests
2020-05-11 15:16:14 +05:00
Mikhail Korobov b183579564
Merge pull request #4205 from elacuesta/bytes_received_signal
Add bytes_received signal
2020-05-11 15:09:55 +05:00
Eugenio Lacuesta 9485724d98
Merge branch 'master' into deprecate-baseitem 2020-05-08 19:32:47 -03:00
Eugenio Lacuesta be39f274b8
Merge branch 'master' into flake8-remove-e128 2020-05-08 18:33:29 -03:00
Mikhail Korobov 333910f6c8
Merge pull request #4554 from elacuesta/linkextractor-remove-lambdas
Remove lambda attributes in default link extractor
2020-05-09 02:11:59 +05:00
Eugenio Lacuesta c2c3054ac1
Flake8: remove E121 2020-05-08 16:43:47 -03:00
Eugenio Lacuesta 3ebf2a0d82
Remove lambdas in link extractor 2020-05-08 15:24:37 -03:00
Antonio Gordillo Toledo cf09af787e
Remove Python 2 encoding header from files (#4553) 2020-05-08 15:45:19 +02:00
Eugenio Lacuesta 6160370927
Merge remote-tracking branch 'upstream/master' into deprecate-baseitem 2020-05-07 14:38:54 -03:00
Eugenio Lacuesta 5256eae60d
Meta class to handle isinstance checks for BaseItem 2020-05-07 14:37:41 -03:00
Eugenio Lacuesta 8b4485134e
Merge branch 'flake8-remove-e126' into flake8-remove-e128 2020-05-07 12:50:20 -03:00
Eugenio Lacuesta 8659b0d896
Merge remote-tracking branch 'upstream/master' into flake8-remove-e126 2020-05-07 09:24:38 -03:00
Mikhail Korobov a8f61e909f
Merge pull request #4544 from elacuesta/flake8-remove-e129
Flake8: remove E129
2020-05-07 15:08:11 +05:00
Mikhail Korobov a18bfccac2
Merge pull request #4542 from elacuesta/flake8-remove-e122-e124
Flake8: remove E122 and E124
2020-05-07 15:05:01 +05:00
Eugenio Lacuesta 7fd2085725
Merge remote-tracking branch 'upstream/master' into bytes_received_signal 2020-05-06 22:41:16 -03:00
Eugenio Lacuesta d472402a02
Fix pickle test for pypy 2020-05-06 20:30:22 -03:00
Eugenio Lacuesta 881b4f417f
Flake8: Remove E128 (tests, part 3) 2020-05-06 19:33:22 -03:00
Eugenio Lacuesta bf56517abf
Flake8: Remove E128 (tests, part 2) 2020-05-06 19:18:29 -03:00
Mikhail Korobov 2da952b928
Merge pull request #4519 from Gallaecio/test-ubuntu-bionic
Test the latest Ubuntu along the latest Python
2020-05-07 03:12:19 +05:00
Eugenio Lacuesta 9c6d13075a
Flake8: Remove E128 (tests, part 1) 2020-05-06 18:56:14 -03:00
Eugenio Lacuesta 25eeb77ba6
Merge remote-tracking branch 'upstream/master' into flake8-max-line-length 2020-05-06 16:52:17 -03:00
Eugenio Lacuesta 88efc98847
Flake8: remove E129 2020-05-06 16:42:47 -03:00
Eugenio Lacuesta 4c12a234ae
Flake8: Remove E126 2020-05-06 16:10:21 -03:00
Eugenio Lacuesta cc23d1cb58
Flake8: Remove E124 2020-05-06 15:40:37 -03:00
Eugenio Lacuesta d71804ef29
Flake8: Remove E122 2020-05-06 15:23:36 -03:00
Eugenio Lacuesta 0e382c8160
Remove unused import 2020-05-06 14:09:10 -03:00
Eugenio Lacuesta 93436f9d3a
Chain pickling exception, test_squeues.py updates 2020-05-06 14:05:27 -03:00
Eugenio Lacuesta b1ddd7bd7b
Refactor test_squeues.py 2020-05-06 13:44:02 -03:00
Eugenio Lacuesta 8643e8d355
Flake8: remove E123 (Closing bracket does not match indentation of opening bracket's line) 2020-05-06 12:26:04 -03:00
Eugenio Lacuesta 63600243e0
Flake8: remove E125 (Continuation line with same indent as next logical line)
Also remove E401 from pytest.ini - no occurrences in the codebase
2020-05-06 10:26:52 -03:00
Eugenio Lacuesta fe0c582ee0
Flake8: remove E127 in tests (continuation line over-indented for visual indent) 2020-05-06 09:49:10 -03:00
Adrián Chaves 98835a0d40
Merge branch 'master' into test-ubuntu-bionic 2020-05-06 13:59:01 +02:00
Eugenio Lacuesta 17c0cf64ae
Flake8: remove W504 code (#4525)
Co-authored-by: Mikhail Korobov <kmike84@gmail.com>
2020-05-06 00:14:48 +02:00
Eugenio Lacuesta 7988c676a9
Update Item docstring, update BaseItem occurrences 2020-05-05 13:11:01 -03:00
Eugenio Lacuesta 622ce86066
Test: make sure scrapy.item.Item does not issue a deprecation warning 2020-05-04 16:22:24 -03:00
Eugenio Lacuesta f75941f79d
Deprecate scrapy.item.BaseItem 2020-05-04 08:53:32 -03:00
BroodingKangaroo dad2ea7522 Change time_id to batch_time 2020-05-02 01:21:03 +03:00
Eugenio Lacuesta 4d625afda5
Merge branch 'master' into bytes_received_signal 2020-05-01 16:11:32 -03:00
BroodingKangaroo 3f9874fac9 Add test s3 export 2020-05-01 11:52:16 +03:00
Eugenio Lacuesta f787b8483c IPv6 test: check for the absence of DNSLookupError 2020-04-28 17:50:06 +02:00
BroodingKangaroo a18621552f Merge branch 'master' of https://github.com/BroodingKangaroo/scrapy into ISSUE-4250-add_batch_deliveries 2020-04-27 10:34:36 +03:00
BroodingKangaroo f0f1be76d1 Using time_id instead of time as a timestamp 2020-04-27 09:56:57 +03:00
Eugenio Lacuesta efb6f13deb
Remove assertions from production code (#4440) 2020-04-23 12:40:10 +02:00
Eugenio Lacuesta 1fecacbb1a
IPv6 test: check for the absence of DNSLookupError 2020-04-20 12:05:15 -03:00
ilias-ant 773ddf77ba added more tests to cover the (downloaded, uptodate, cached) status functionality 2020-04-19 14:14:17 +03:00
BroodingKangaroo ec76445dd6 Update tests 2020-04-18 09:29:23 +03:00
Mikhail Korobov 209ab05315
Merge pull request #4500 from victor-torres/reference-callback
Serialize requests with callback references as spider attribute
2020-04-17 18:58:28 +05:00
Victor Torres 1ade3fc723
trying to improve test coverage 2020-04-17 10:34:34 -03:00
Eugenio Lacuesta 7926da4bd0
Merge branch 'master' into flake8-max-line-length 2020-04-16 16:05:09 -03:00
Mikhail Korobov cf39602c30
Merge pull request #4471 from elacuesta/fix-pycodestyle-e731
Fix pycodestyle E731 ("do not assign a lambda expression, use a def")
2020-04-16 23:17:31 +05:00
Adrián Chaves ea3e675801 test_utils_iterators: use os.linesep 2020-04-16 17:10:45 +02:00
Adrián Chaves cf41803089 Skip test_reactor_poll on Windows 2020-04-16 17:07:29 +02:00
Adrián Chaves 7cc9601029 Improve reporting on test_ipv6_alternative_name_resolver 2020-04-16 16:57:48 +02:00
Eugenio Lacuesta c922992277
Tests: Move code inside __main__ block 2020-04-16 11:37:37 -03:00
Eugenio Lacuesta 1f2e2a6006
Merge branch 'master' into response_ip_address 2020-04-16 11:32:37 -03:00
Victor Torres e0921cab66
remove not used code
This code is not needed anymore because we're getting the
already mangled name when matching func with spider attributes.
2020-04-16 11:18:59 -03:00
Adrián Chaves 94ee68695a Mock server: use 127.0.0.1 also for HTTPS
Windows throws an error about 0.0.0.0 being external:
https://stackoverflow.com/a/23857995/939364
2020-04-16 15:37:06 +02:00
BroodingKangaroo 5980ae72c6 Some minor fixes and refactoring 2020-04-16 10:13:39 +03:00
Victor Torres 47a992615a
serialize requests with callback references as spider attribute
You could define a spider attribute that references a callback method
but if this method has a different name than your spider attribute,
the request serializer is not able to find it on the spider class.

With this commit we're fixing this behavior as we're searching for
callback references in the spider object itself instead of looking
for attributes with the same function's name, that could be different.
2020-04-15 20:03:58 -03:00
BroodingKangaroo 16836e9e77 Merge branch 'ISSUE-4250-add_batch_deliveries' of https://github.com/BroodingKangaroo/scrapy into ISSUE-4250-add_batch_deliveries 2020-04-16 00:41:21 +03:00
BroodingKangaroo 963580463b Update tests 2020-04-15 23:39:46 +03:00
BroodingKangaroo 39d0d13d3f Add partial deliveries tests 2020-04-15 23:38:27 +03:00
Adrián Chaves 2f510fd47d Fix ShellTest.test_local_file on Windows 2020-04-15 21:10:05 +02:00
Mikhail Korobov 2d46777d0a
Merge pull request #4489 from elacuesta/remove-returnValue-function
Remove twisted.internet.defer.returnValue occurrences
2020-04-15 22:45:52 +05:00
Eugenio Lacuesta 01d73dd3f0
Merge branch 'master' into flake8-max-line-length 2020-04-15 09:24:33 -03:00
Adrián Chaves d323a57381
Merge branch 'master' into fix-pycodestyle-e731 2020-04-15 14:16:15 +02:00
Eugenio Lacuesta 94d7ad76cb
Fix pycodestyle E2XX (whitespace) (#4468) 2020-04-15 14:11:37 +02:00
Eugenio Lacuesta 4023d5db33
Replace _DefGen_Return exception handling
Handle StopIteration instead
2020-04-13 06:35:26 -03:00
Eugenio Lacuesta 1bd8f392c9
Initial removal of twisted.internet.defer.returnValue 2020-04-13 06:12:30 -03:00
ilias-ant 83a0cc6cdf Add status to files information 2020-04-12 23:22:17 +03:00
Eugenio Lacuesta 950a52468c
Merge branch 'master' into flake8-max-line-length 2020-04-10 15:24:22 -03:00
Eugenio Lacuesta 2265c1fda9
Merge branch 'master' into fix-pycodestyle-e731 2020-04-10 14:32:30 -03:00
Eugenio Lacuesta c4a5e3f0da
Simplify bytes_received signal
Remove "source" parameter
2020-04-06 09:26:13 -03:00
Eugenio Lacuesta e3342669ae
Merge branch 'master' into bytes_received_signal 2020-04-06 09:17:35 -03:00
Eugenio Lacuesta 4270e0a0da
Fix E731: do not assign a lambda expression 2020-04-04 21:54:55 -03:00
Eugenio Lacuesta e2d5d357a7
Fix pycodestyle E502 2020-04-01 14:24:30 -03:00
Adrián Chaves bdb28ac600 Merge remote-tracking branch 'origin/sybil' into azure-pipelines 2020-03-30 20:25:40 +02:00
Adrián Chaves 3fb0027138 Require sybil ≥ 1.3.0 for tests 2020-03-28 17:36:50 +01:00
Daniel Graña 02206e5ffe Run tox 2020-03-27 02:20:39 -03:00
Eugenio Lacuesta 182394bcec
E501 compliance (tests) 2020-03-22 23:29:30 -03:00
Eugenio Lacuesta 34d607194b
Merge branch 'master' into feat-685 2020-03-18 21:24:36 -03:00
elacuesta dfbe1d9507
Remove object base class (#4430) 2020-03-16 20:12:46 +01:00
Andrey Rahmatullin ecd3a976d2
Merge pull request #4398 from nyov/remove-crawler-spiders
Remove deprecated Crawler.spiders property
2020-03-16 17:21:07 +05:00
Eugenio Lacuesta aa6075e08c
Merge branch 'master' into bytes_received_signal 2020-03-15 18:05:04 -03:00
Eugenio Lacuesta bde0384dfd
Merge branch 'master' into spider.parse 2020-03-14 19:53:36 -03:00
Adrián Chaves 3f6cdcabce Restrict pytest to versions prior to 5.4 2020-03-13 13:25:53 +01:00
Lukas Anzinger ccc4d88779
Ignore a domain in allowed_domains with port and issue a warning (#4413) 2020-03-12 20:42:14 +01:00
nyov 3b0820d747
Deprecate Spider.make_requests_from_url, part 2 (#4412) 2020-03-12 20:15:49 +01:00
Mikhail Korobov db9198bc20
Merge pull request #4409 from nyov/remove-deprecation-warning
Remove a 'twisted.test.proto_helpers' deprecation warning
2020-03-12 18:46:47 +05:00
Eugenio Lacuesta 8d30dc0888
Response.follow_all: return empty generators for empty sequences 2020-03-12 09:36:15 -03:00
Andrey Rahmatullin 388f23c30c
Merge pull request #3858 from elacuesta/multiple_feed_export_formats
[MRG+1] Support for exporting to multiple feeds in a single crawl
2020-03-12 14:31:57 +05:00
Eugenio Lacuesta 21f1eddc90
Merge branch 'master' into bytes_received_signal 2020-03-11 21:16:35 -03:00
Eugenio Lacuesta f3bab819ab
Add tests for scrapy.utils.conf.feed_complete_default_values_from_settings 2020-03-11 20:57:31 -03:00
Eugenio Lacuesta ac73bcc79c
Merge branch 'master' into response_ip_address 2020-03-08 22:30:59 -03:00
Lukas Anzinger 9d9dea0d69 Fix handling of None in allowed_domains.
Nones in allowed_domains ought to be ignored and there are also tests
for that scenario. This commit fixes the handling of None and also the
accompanying tests which are now executed again.
2020-03-07 20:34:18 +01:00
nyov 915e363db5 Remove a 'twisted.test.proto_helpers' deprecation warning 2020-03-07 18:03:25 +00:00
Eugenio Lacuesta ada37c5409
Export to multiple formats in a single crawl 2020-03-05 09:33:57 -03:00
nyov b1566a6962 Remove deprecated Crawler.spiders property
Deprecated since 419026615 (2014, Scrapy 0.25)
2020-03-04 21:23:42 +00:00
Eugenio Lacuesta 3aa5eab993
Merge branch 'master' into response_ip_address 2020-03-03 13:53:43 -03:00
nyov 1b591ff061 Obsolete deprecated settings
Obsolete REDIRECT_MAX_METAREFRESH_DELAY
  which has been deprecated since Scrapy 0.18

Obsolete LOG_UNSERIALIZABLE_REQUESTS
  which has been deprecated since Scrapy 1.2.0
  and is replaced by SCHEDULER_DEBUG
2020-03-03 14:03:30 +00:00
Adrián Chaves 6aa0ba4553
Write release notes for Scrapy 2.0.0 (#4329) 2020-03-03 09:11:11 +01:00
sakshamb2113 c411a51f42
Fix random failures from test_fixed_delay in some machines (#4372) 2020-02-28 13:17:02 +01:00
Adrián Chaves 9aae4c0be7 Add tests for envvar setting warnings 2020-02-27 16:31:43 +01:00
gunblues 034e2c31c7
Use a non-zero exit code when a pipeline's open_spider method throws an exception (#4207)
* fix issue 4175 - Scrapy does not use a non-zero exit code when pipeline's open_spider throws the exception

* remove extra blank lines

* remove redundant code

* remove blank line at end of file

* more suitable naming for response and make if-condition shorter

* avoid error - AttributeError: 'Deferred' object has no attribute 'result'

* use getattr to make code concisely

* add test

* remove useless file

* modify test class name

* remove unneccessary files

* Fix Flake8-reported issue

* fix these items which are suggested by Gallaecio
・Sort those imports at tests/test_cmdline_crawl_with_pipeline/__init__.py
・Remove the unused setUp method.
・Remove comments generated by Scrapy’s project generation tool.
・Remove the [deploy] section from the scrapy.cfg file (I don’t think it’s needed here)
・Remove BOT_NAME and NEWSPIDER_MODULE from settings.py (I think there are not needed either, although I’m less sure about NEWSPIDER_MODULE)

* have to reserve BOT_NAME, SPIDER_MODULES in settings.py

* Remove unneeded empty lines

* Empty __init__.py file with unneeded comments

* Remove an unneeded empty line at the end

* Remove unneeed empty line from __init__.py file

* Update __init__.py

* Update __init__.py

* Update exception.py

* Update normal.py

* Update __init__.py

* Update __init__.py

* fix W391 blank line at end of file

Co-authored-by: Adrián Chaves <adrian@chaves.io>
2020-02-26 00:46:05 +05:00
Eugenio Lacuesta 889b471852
Import changes 2020-02-23 18:40:43 -03:00
Eugenio Lacuesta a44942d27d
Merge branch 'master' into response_ip_address 2020-02-23 18:13:52 -03:00
Mikhail Korobov 49480225d7
Merge pull request #4365 from noviluni/fix_flake8_E701_E271
Fix flake8 E131, E211, E251, E271, E701
2020-02-23 15:52:52 +05:00
elacuesta 9d983c1b99
Expose certificate for HTTPS responses (#4054)
* Expose certificate for HTTPS responses

* Fix test (missing inlineCallbacks decorator)

* Note about Response.certificate

* Explicitly cover None as the default value of Response.certificate

Co-authored-by: Adrián Chaves <adrian@chaves.io>
2020-02-22 17:20:31 +05:00
Vostretsov Nikita 67ee0b097f
Remove specifics of downstream request queues from scheduler (#3884)
* move serialization/deserialization logic to downstream queues

* make memory queues conform to common interface

* make ScrapyPriorityQueue conform common interface

* ScrapyPriorityQueue works with disk

* make key as string

* return list instead of dict as earlier

* downloader aware pq works with new interface

* we don`t need these methods anymore

* create directories for files

* remove dummy priority

* remove priority as parameter, let every queue decide for itself

* rename obj to request

* DownloaderAwarePriorityQueue is too thin wrapper around _SlotPriorityQueues, just remove second one

* remove priority as parameter, let every queue decide for itself

* rename argument

* more granular class separation

* python2 compatible

* one more argument for common interface

* more simple downstream queue interface

* single place for easier customization

* rename function

* shorter

* shorter

* use named arguments

* fix typo

* add docstring

* Update scrapy/pqueues.py

Co-Authored-By: Mikhail Korobov <kmike84@gmail.com>

* Update scrapy/pqueues.py

Co-Authored-By: Mikhail Korobov <kmike84@gmail.com>

* 4 spaces indentation

* we ok with existing directories

* remove unused import

* rename method

* remove unused imports

* it has no sense now

* relining

* note about queues

* add value

* Revert "it has no sense now"

This reverts commit b61604275b.

* pep8 E261

* pep8 E303

* pep8 E501

* pep8 E123

* pep8 E123

* use create instance

* remove excessive import

Co-authored-by: Mikhail Korobov <kmike84@gmail.com>
2020-02-22 17:02:57 +05:00
Marc Hernandez Cabot 6e8e117aee fix flake E211 2020-02-22 12:32:38 +01:00
Marc Hernandez Cabot 69a8648bef fix E251 2020-02-22 12:32:38 +01:00
Marc Hernandez Cabot 9ad10bb6f7 fix E131 2020-02-22 12:32:38 +01:00
Marc Hernandez Cabot b49ece0b87 fix E701 and E271 flake8 2020-02-22 12:32:38 +01:00
Mikhail Korobov e551bc5170
Merge pull request #4318 from wRAR/asyncio-parse-asyncgen
Support yield in async def callbacks.
2020-02-21 23:50:01 +05:00
Marc Hernandez Cabot 6fb85951ce fix E22X flake8 2020-02-21 08:39:14 +01:00
Marc Hernández 91bbc70bc1
fix E30X flake8 (#4355) 2020-02-21 06:05:31 +01:00
Andrey Rahmatullin 88179027de
Merge pull request #4331 from Gallaecio/response-cb-kwargs
Implement Response.cb_kwargs
2020-02-19 22:40:14 +05:00
Andrey Rahmatullin f558df2558
Merge pull request #4188 from elacuesta/logformatter-error-formatting
LogFormatter error formatting
2020-02-19 19:05:08 +05:00
Andrey Rahmatullin 528b894f28
Merge pull request #4321 from Gallaecio/link-extractor-encoding
Use safe_url_string in link extraction
2020-02-19 18:19:21 +05:00
Adrián Chaves 43b43654a1 Add tests for meta and cb_kwargs not being available 2020-02-13 22:39:58 +01:00
Adrián Chaves 5ff9eb90ea Add a test for the copy of cb_kwargs from Request to Response 2020-02-13 22:36:18 +01:00
Adrián Chaves b4958358e8 Update tests to account for link extractors escaping spaces 2020-02-12 19:00:04 +01:00
Adrián Chaves e1be078eaa Fix Flake8-reported issues 2020-02-12 17:38:06 +01:00
Mikhail Korobov a6ef065eb5
Merge pull request #4271 from wRAR/asyncio-signals
async def support for signal handlers that already supported Deferreds
2020-02-11 02:05:45 +05:00
Andrey Rakhmatullin 1f0f52cbf7 Improve async signal tests. 2020-02-11 01:05:45 +05:00
Andrey Rakhmatullin 36dcf90184 Also test non-default async callbacks. 2020-02-11 01:00:16 +05:00
Abhishek Pratap Singh 4626e90df8
Allow updating flags in follow and follow_all (#4279) 2020-02-10 19:48:31 +01:00
Adrián Chaves 96bb3b5144
Merge branch 'master' into feat-685 2020-02-10 19:45:09 +01:00
Eugenio Lacuesta 122ce6d6fb
Check bytes are received in order (bytes_received signal) 2020-02-10 10:20:26 -03:00
Adrián Chaves 35723d76c0 Use canonicalize_url in link extraction 2020-02-07 22:59:53 +01:00
Adrián Chaves c2f484de88
Merge branch 'master' into response_ip_address 2020-02-07 21:49:38 +01:00
Adrián Chaves 4c6993f264
Merge branch 'master' into asyncio-parse-asyncgen 2020-02-07 21:34:54 +01:00
Adrián Chaves aae4935605
Merge branch 'master' into spider.parse 2020-02-07 21:17:56 +01:00
Mikhail Korobov 957681bcfa
Merge pull request #4272 from elacuesta/spider-middleware
Spider middleware: catch spider callback exceptions early
2020-02-07 23:40:50 +05:00
Mikhail Korobov afbaf9d430
Merge pull request #4303 from whalebot-helmsman/request_left_downloader_signal
request_left_downloader signal
2020-02-07 23:33:51 +05:00
Andrey Rakhmatullin 7323780c97 Support yield in async def callbacks. 2020-02-07 21:32:45 +05:00
Andrey Rakhmatullin 31f6c7112f Add a test for an async callbacks that returns requests. 2020-02-07 17:14:52 +05:00
Andrey Rakhmatullin 4a7c7340a0 Merge remote-tracking branch 'origin/master' into asyncio-signals 2020-02-07 16:58:59 +05:00
Eugenio Lacuesta 6c333491a8
Merge branch 'master' into response_ip_address 2020-02-06 18:53:11 -03:00
Eugenio Lacuesta 7f2d3051fe
Fix Flake8 issue 2020-02-06 18:19:40 -03:00
Lane Shaw 3263441fbc
Update RFPDupeFilter line separator for correct universal newlines mode usage (#4283) 2020-02-06 22:14:40 +01:00
Adrián Chaves 24bb9fd5f7
Merge branch 'master' into spider.parse 2020-02-06 21:39:09 +01:00
Mikhail Korobov 042e71e2b8
Merge pull request #4311 from Gallaecio/metarefresh-ignore-tags
Make METAREFRESH_IGNORE_TAGS an empty list by default
2020-02-06 23:40:45 +05:00
elacuesta 35dafef7f1
Specify Twisted reactor (TWISTED_REACTOR setting) (#4294)
* Add the ability to install a specific reactor

* Add docs for the TWISTED_REACTOR setting

* Add tests for the TWISTED_REACTOR setting

* Update asyncio reactor test

* Ignore W503 globally

W503 is not PEP8-compliant:
c59c4376ad

* Line length adjustment

* Adjust asyncio reactor tests

* Merge ASYNCIO_ENABLED and TWISTED_REACTOR settings

* More docs about TWISTED_REACTOR

* Fix asyncio reactor test

* Docs: fix title

* Reword docs

* Check the TWISTED_REACTOR setting outside of the installing function

* Remove unrelated change

* Update scrapy/utils/log.py

Co-Authored-By: Adrián Chaves <adrian@chaves.io>

* Update docs/topics/settings.rst

Co-Authored-By: Adrián Chaves <adrian@chaves.io>

* Update docs/topics/settings.rst

Co-Authored-By: Adrián Chaves <adrian@chaves.io>

Co-authored-by: Adrián Chaves <adrian@chaves.io>
2020-02-06 22:42:34 +05:00
Andrey Rakhmatullin 489ffcda51 Add a test for an async item_scraped handler. 2020-02-06 22:40:11 +05:00
Vostretsov Nikita 4be19e443e name signla catcher in accord with signal name 2020-02-06 13:46:23 +00:00
Vostretsov Nikita 4a91a5427d fix typo 2020-02-06 13:44:51 +00:00
Adrián Chaves 576663e5a7 Make METAREFRESH_IGNORE_TAGS an empty list by default 2020-02-06 10:43:20 +01:00
Vostretsov Nikita 3769f75386 pep8 E302 2020-02-05 12:08:08 +00:00
Vostretsov Nikita 9916f6e556 tests for new signal 2020-02-05 11:32:54 +00:00
Eugenio Lacuesta ad70497416
Remove unnecessary parentheses in class definition 2020-02-04 13:30:13 -03:00
Eugenio Lacuesta e0ef8ad2d6
CrawlerRunner test for Response.ip_address 2020-02-03 15:52:15 -03:00
Eugenio Lacuesta 4851efdfb0
Flake8 adjustments 2020-02-03 14:50:54 -03:00
Eugenio Lacuesta bb8f7dc609
Mock DNS server 2020-02-03 14:50:14 -03:00
Eugenio Lacuesta a2ae380efc
Remove unnecessary commas 2020-02-03 13:23:52 -03:00
Eugenio Lacuesta b9e3a6201b
Merge branch 'master' into response_ip_address 2020-02-03 04:07:44 -03:00
Mikhail Korobov 22f7934fcc
Merge pull request #4269 from wRAR/asyncio-parse
Support for async def callbacks.
2020-01-31 23:50:19 +05:00
Andrey Rakhmatullin 7687564c73 Merge remote-tracking branch 'origin/master' into asyncio-signals 2020-01-30 17:42:03 +05:00
Andrey Rakhmatullin cc825c21de Test returning items from an async def callback. 2020-01-30 16:17:06 +05:00
Eugenio Lacuesta 6f02a8dccb
Add source parameter to bytes_received signal 2020-01-29 15:51:25 -03:00
Eugenio Lacuesta 2c9643d38c
Test: bytes_received signal fired multiple times 2020-01-29 14:17:06 -03:00
Evgeny Dorofeev 4e56571a19 [HttpCompressionMiddleware] fix delimiter for Accept-Encoding header 2020-01-29 15:49:22 +03:00
Eugenio Lacuesta 613fd41f44
bytes_received signal: improve test performance 2020-01-27 13:25:06 -03:00
Eugenio Lacuesta dbe20a863f
bytes_received signal: send spider argument 2020-01-27 12:28:54 -03:00