34 lines
836 B
Python
34 lines
836 B
Python
import pytest
|
|
import sqlalchemy as sa
|
|
|
|
from sqlalchemy_utils import json_sql
|
|
from tests import TestCase
|
|
|
|
|
|
class TestJSONSQL(TestCase):
|
|
dns = 'postgres://postgres@localhost/sqlalchemy_utils_test'
|
|
|
|
@pytest.mark.parametrize(
|
|
('value', 'result'),
|
|
(
|
|
(1, 1),
|
|
(14.14, 14.14),
|
|
({'a': 2, 'b': 'c'}, {'a': 2, 'b': 'c'}),
|
|
(
|
|
{'a': {'b': 'c'}},
|
|
{'a': {'b': 'c'}}
|
|
),
|
|
({}, {}),
|
|
([1, 2], [1, 2]),
|
|
([], []),
|
|
(
|
|
[sa.select([sa.text('1')]).label('alias')],
|
|
[1]
|
|
)
|
|
)
|
|
)
|
|
def test_compiled_scalars(self, value, result):
|
|
assert result == (
|
|
self.connection.execute(sa.select([json_sql(value)])).fetchone()[0]
|
|
)
|