mirror of https://github.com/scrapy/scrapy.git
Replace regex usage
This commit is contained in:
parent
72b7d3e90a
commit
9af91a26b0
|
|
@ -2,16 +2,12 @@
|
|||
Helper functions for serializing (and deserializing) requests.
|
||||
"""
|
||||
import six
|
||||
import re
|
||||
|
||||
from scrapy.http import Request
|
||||
from scrapy.utils.python import to_unicode, to_native_str
|
||||
from scrapy.utils.misc import load_object
|
||||
|
||||
|
||||
private_name_regex = re.compile('^__.*[^_]_?$')
|
||||
|
||||
|
||||
def request_to_dict(request, spider=None):
|
||||
"""Convert Request object to a dict.
|
||||
|
||||
|
|
@ -71,6 +67,10 @@ def request_from_dict(d, spider=None):
|
|||
flags=d.get('flags'))
|
||||
|
||||
|
||||
def _is_private_method(name):
|
||||
return name.startswith('__') and not name.endswith('__')
|
||||
|
||||
|
||||
def _find_method(obj, func):
|
||||
if obj:
|
||||
try:
|
||||
|
|
@ -80,7 +80,7 @@ def _find_method(obj, func):
|
|||
else:
|
||||
if func_self is obj:
|
||||
name = six.get_method_function(func).__name__
|
||||
if private_name_regex.search(name):
|
||||
if _is_private_method(name):
|
||||
classname = obj.__class__.__name__.lstrip('_')
|
||||
name = '_%s%s' % (classname, name)
|
||||
return name
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import unittest
|
|||
|
||||
from scrapy.http import Request, FormRequest
|
||||
from scrapy.spiders import Spider
|
||||
from scrapy.utils.reqser import request_to_dict, request_from_dict, private_name_regex
|
||||
from scrapy.utils.reqser import request_to_dict, request_from_dict, _is_private_method
|
||||
|
||||
|
||||
class RequestSerializationTest(unittest.TestCase):
|
||||
|
|
@ -75,26 +75,26 @@ class RequestSerializationTest(unittest.TestCase):
|
|||
self._assert_serializes_ok(r, spider=self.spider)
|
||||
|
||||
def test_private_callback_name_matching(self):
|
||||
self.assertTrue(private_name_regex.search('__a'))
|
||||
self.assertTrue(private_name_regex.search('__a_'))
|
||||
self.assertTrue(private_name_regex.search('__a_a'))
|
||||
self.assertTrue(private_name_regex.search('__a_a_'))
|
||||
self.assertTrue(private_name_regex.search('__a__a'))
|
||||
self.assertTrue(private_name_regex.search('__a__a_'))
|
||||
self.assertTrue(private_name_regex.search('__a___a'))
|
||||
self.assertTrue(private_name_regex.search('__a___a_'))
|
||||
self.assertTrue(private_name_regex.search('___a'))
|
||||
self.assertTrue(private_name_regex.search('___a_'))
|
||||
self.assertTrue(private_name_regex.search('___a_a'))
|
||||
self.assertTrue(private_name_regex.search('___a_a_'))
|
||||
self.assertTrue(private_name_regex.search('____a_a_'))
|
||||
self.assertTrue(_is_private_method('__a'))
|
||||
self.assertTrue(_is_private_method('__a_'))
|
||||
self.assertTrue(_is_private_method('__a_a'))
|
||||
self.assertTrue(_is_private_method('__a_a_'))
|
||||
self.assertTrue(_is_private_method('__a__a'))
|
||||
self.assertTrue(_is_private_method('__a__a_'))
|
||||
self.assertTrue(_is_private_method('__a___a'))
|
||||
self.assertTrue(_is_private_method('__a___a_'))
|
||||
self.assertTrue(_is_private_method('___a'))
|
||||
self.assertTrue(_is_private_method('___a_'))
|
||||
self.assertTrue(_is_private_method('___a_a'))
|
||||
self.assertTrue(_is_private_method('___a_a_'))
|
||||
self.assertTrue(_is_private_method('____a_a_'))
|
||||
|
||||
self.assertFalse(private_name_regex.search('_a'))
|
||||
self.assertFalse(private_name_regex.search('_a_'))
|
||||
self.assertFalse(private_name_regex.search('__a__'))
|
||||
self.assertFalse(private_name_regex.search('__'))
|
||||
self.assertFalse(private_name_regex.search('___'))
|
||||
self.assertFalse(private_name_regex.search('____'))
|
||||
self.assertFalse(_is_private_method('_a'))
|
||||
self.assertFalse(_is_private_method('_a_'))
|
||||
self.assertFalse(_is_private_method('__a__'))
|
||||
self.assertFalse(_is_private_method('__'))
|
||||
self.assertFalse(_is_private_method('___'))
|
||||
self.assertFalse(_is_private_method('____'))
|
||||
|
||||
def test_unserializable_callback1(self):
|
||||
r = Request("http://www.example.com", callback=lambda x: x)
|
||||
|
|
|
|||
Loading…
Reference in New Issue