slugify moved to lib

This commit is contained in:
Martin
2016-07-15 16:57:43 +02:00
parent e8f79ae3ef
commit 7d241e2d2c
7 changed files with 49 additions and 49 deletions
+1 -27
View File
@@ -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")
@@ -16,27 +13,4 @@ def check_api_key():
return Response(
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
)
+26
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -1,5 +1,5 @@
from api import db
from api.helpers import slugify
from api.lib.slugify import slugify
class Designer(db.Model):
View File
+20
View File
@@ -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')
-20
View File
@@ -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')