Skip to content

Commit

Permalink
Add conversion functions.
Browse files Browse the repository at this point in the history
  • Loading branch information
bitbckt committed Jul 13, 2018
1 parent 5cf5522 commit 3b0dfd0
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## 2.0.1.dev
- Added `ngram` function
- Added `is_empty` and `is_nonempty` functions
- Added `to_string`, `to_number`, `to_time`, and `to_date` functions

## 2.0.0 (March 19, 2018)

Expand Down
12 changes: 12 additions & 0 deletions faunadb/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,18 @@ def not_(boolean):
"""See the `docs <https://fauna.com/documentation/queries#misc_functions>`__."""
return _fn({"not": boolean})

def to_string(expr):
return _fn({"to_string": expr})

def to_number(expr):
return _fn({"to_number": expr})

def to_time(expr):
return _fn({"to_time": expr})

def to_date(expr):
return _fn({"to_date": expr})

#endregion

#region Helpers
Expand Down
13 changes: 13 additions & 0 deletions tests/test_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,19 @@ def test_not(self):
self.assertFalse(self._q(query.not_(True)))
self.assertTrue(self._q(query.not_(False)))

def test_to_string(self):
self.assertEqual(self._q(query.to_string(42)), "42")

def test_to_number(self):
self.assertEqual(self._q(query.to_number("42")), 42)

def test_to_time(self):
time = "1970-01-01T00:00:00Z"
self.assertEqual(self._q(query.to_time(time)), FaunaTime(time))

def test_to_date(self):
self.assertEqual(self._q(query.to_date("1970-01-01")), date(1970, 1, 1))

#endregion

#region Helpers tests
Expand Down
16 changes: 15 additions & 1 deletion tests/test_serialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,8 @@ def test_ngram(self):
self.assertJson(query.ngram("str"), '{"ngram":"str"}')
self.assertJson(query.ngram(["str0", "str1"]), '{"ngram":["str0","str1"]}')
self.assertJson(query.ngram("str", min=2, max=3), '{"max":3,"min":2,"ngram":"str"}')
self.assertJson(query.ngram(["str0", "str1"], min=2, max=3), '{"max":3,"min":2,"ngram":["str0","str1"]}')
self.assertJson(query.ngram(["str0", "str1"], min=2, max=3),
'{"max":3,"min":2,"ngram":["str0","str1"]}')

#endregion

Expand Down Expand Up @@ -412,6 +413,19 @@ def test_or_expr(self):
def test_not_expr(self):
self.assertJson(query.not_(False), '{"not":false}')

def test_to_string_expr(self):
self.assertJson(query.to_string(42), '{"to_string":42}')

def test_to_number_expr(self):
self.assertJson(query.to_number("42"), '{"to_number":"42"}')

def test_to_time_expr(self):
self.assertJson(query.to_time("1970-01-01T00:00:00Z"),
'{"to_time":"1970-01-01T00:00:00Z"}')

def test_to_date_expr(self):
self.assertJson(query.to_date("1970-01-01"), '{"to_date":"1970-01-01"}')

#endregion

def assertJson(self, obj, expected):
Expand Down

0 comments on commit 3b0dfd0

Please sign in to comment.