Skip to content

Commit

Permalink
Merge pull request #120 from k-dal/escape-single-quote-formula-field
Browse files Browse the repository at this point in the history
Escape single quote formula field
  • Loading branch information
gtalarico committed Jul 22, 2021
2 parents fc0efea + 31efa3b commit bf130cc
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
2 changes: 2 additions & 0 deletions airtable/params.py
Expand Up @@ -17,6 +17,7 @@
""" #

from collections import OrderedDict
import re


class _BaseParam(object):
Expand Down Expand Up @@ -205,6 +206,7 @@ def from_name_and_value(field_name, field_value):
Creates a formula to match cells from from field_name and value
"""
if isinstance(field_value, str):
field_value = re.sub("(?<!\\\\)'", "\\'", field_value)
field_value = "'{}'".format(field_value)

formula = "{{{name}}}={value}".format(name=field_name, value=field_value)
Expand Down
6 changes: 6 additions & 0 deletions tests/test_params.py
Expand Up @@ -94,6 +94,12 @@ def test_formula_from_name_and_value():
formula = AirtableParams.FormulaParam.from_name_and_value("COL", "VAL")
assert formula == r"{COL}='VAL'"

formula = AirtableParams.FormulaParam.from_name_and_value("COL", "'VAL'")
assert formula == r"{COL}='\'VAL\''"

formula = AirtableParams.FormulaParam.from_name_and_value("COL", "\\'VAL\\'")
assert formula == r"{COL}='\'VAL\''"

formula = AirtableParams.FormulaParam.from_name_and_value("COL", 8)
assert formula == r"{COL}=8"

Expand Down

0 comments on commit bf130cc

Please sign in to comment.