slugify moved to lib
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
# coding=UTF-8
|
||||
import json
|
||||
from flask import request, current_app, Response
|
||||
import unidecode
|
||||
import re
|
||||
|
||||
|
||||
def check_api_key():
|
||||
api_keys = current_app.config.get("API_KEYS")
|
||||
@@ -17,26 +14,3 @@ def check_api_key():
|
||||
response, 401,
|
||||
{'WWW-Authenticate': 'Basic realm="Login Required"'}
|
||||
)
|
||||
|
||||
|
||||
def slugify(text):
|
||||
"""Converts a string to a human-readable url"""
|
||||
|
||||
# translate
|
||||
text = unidecode.unidecode(text)
|
||||
|
||||
# lowercase
|
||||
text = text.lower()
|
||||
|
||||
# replace unwanted chars
|
||||
numbers = re.compile('(?<=\d),(?=\d)')
|
||||
text = numbers.sub('', text)
|
||||
unwanted_chars = re.compile(r'[^_a-z0-9/]+')
|
||||
text = unwanted_chars.sub('_', text)
|
||||
|
||||
# remove redundant _
|
||||
duplicated_underscores = re.compile('_{2,}')
|
||||
text = duplicated_underscores.sub('_', text)
|
||||
text = text.strip('_')
|
||||
|
||||
return text
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# coding=UTF-8
|
||||
import unidecode
|
||||
import re
|
||||
|
||||
|
||||
def slugify(text):
|
||||
"""Converts a string to a human-readable url"""
|
||||
|
||||
# translate
|
||||
text = unidecode.unidecode(text)
|
||||
|
||||
# lowercase
|
||||
text = text.lower()
|
||||
|
||||
# replace unwanted chars
|
||||
numbers = re.compile('(?<=\d),(?=\d)')
|
||||
text = numbers.sub('', text)
|
||||
unwanted_chars = re.compile(r'[^_a-z0-9/]+')
|
||||
text = unwanted_chars.sub('_', text)
|
||||
|
||||
# remove redundant _
|
||||
duplicated_underscores = re.compile('_{2,}')
|
||||
text = duplicated_underscores.sub('_', text)
|
||||
text = text.strip('_')
|
||||
|
||||
return text
|
||||
@@ -1,5 +1,5 @@
|
||||
from api import db
|
||||
from api.helpers import slugify
|
||||
from api.lib.slugify import slugify
|
||||
from api.models.locale import Locale
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from api import db
|
||||
from api.helpers import slugify
|
||||
from api.lib.slugify import slugify
|
||||
|
||||
|
||||
class Designer(db.Model):
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# coding=UTF-8
|
||||
|
||||
import unittest2
|
||||
from api.lib.slugify import slugify
|
||||
|
||||
|
||||
class TestHelpers(unittest2.TestCase):
|
||||
|
||||
def test_slugify(self):
|
||||
self.assertEqual(slugify('HELLO'), 'hello')
|
||||
self.assertEqual(slugify('this is a test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('___This is a test___'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('this-is-a-test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('this_is_a__test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('404'), '404')
|
||||
self.assertEqual(slugify('1,000 reasons you are #1'),
|
||||
'1000_reasons_you_are_1')
|
||||
self.assertEqual(slugify('Nín hǎo'), 'nin_hao')
|
||||
self.assertEqual(slugify('räksmörgås'), 'raksmorgas')
|
||||
self.assertEqual(slugify('RÄKSMÖRGÅS'), 'raksmorgas')
|
||||
@@ -1,20 +0,0 @@
|
||||
# coding=UTF-8
|
||||
|
||||
import unittest2
|
||||
from api.helpers import slugify
|
||||
|
||||
|
||||
class TestHelpers(unittest2.TestCase):
|
||||
|
||||
def test_slugify(self):
|
||||
self.assertEqual(slugify('HELLO'), 'hello')
|
||||
self.assertEqual(slugify('this is a test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('___This is a test___'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('this-is-a-test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('this_is_a__test'), 'this_is_a_test')
|
||||
self.assertEqual(slugify('404'), '404')
|
||||
self.assertEqual(slugify('1,000 reasons you are #1'),
|
||||
'1000_reasons_you_are_1')
|
||||
self.assertEqual(slugify('Nín hǎo'), 'nin_hao')
|
||||
self.assertEqual(slugify('räksmörgås'), 'raksmorgas')
|
||||
self.assertEqual(slugify('RÄKSMÖRGÅS'), 'raksmorgas')
|
||||
|
||||
Reference in New Issue
Block a user