Skip to content

Commit

Permalink
Use unidecode to handle unicode characters in constant names (#1080)
Browse files Browse the repository at this point in the history
  • Loading branch information
henrythor authored Feb 8, 2020
1 parent 55a03ba commit 9a19447
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 1 deletion.
3 changes: 2 additions & 1 deletion graphene/utils/str_converters.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import re
from unidecode import unidecode


# Adapted from this response in Stackoverflow
Expand All @@ -18,4 +19,4 @@ def to_snake_case(name):


def to_const(string):
return re.sub(r"[\W|^]+", "_", string).upper() # noqa
return re.sub(r"[\W|^]+", "_", unidecode(string)).upper()
4 changes: 4 additions & 0 deletions graphene/utils/tests/test_str_converters.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,7 @@ def test_camel_case():

def test_to_const():
assert to_const('snakes $1. on a "#plane') == "SNAKES_1_ON_A_PLANE"


def test_to_const_unicode():
assert to_const("Skoða þetta unicode stöff") == "SKODA_THETTA_UNICODE_STOFF"
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ def run_tests(self):
"graphql-core>=3.0.0,<4",
"graphql-relay>=3.0.0,<4",
"aniso8601>=6,<9",
"unidecode>=1.1.1,<2",
],
tests_require=tests_require,
extras_require={"test": tests_require, "dev": dev_requires},
Expand Down

0 comments on commit 9a19447

Please sign in to comment.